Filesystems

我們可以在一個目錄中有多個同名的文件/目錄嗎?

  • April 14, 2018

為什麼我在同一個目錄中看到兩個具有相同名稱“storage”的文件(目錄)?inode 編號不同。

root@OpenWrt:/# fsck.ext4 -p /dev/sda1
/dev/sda1: clean, 2213/979200 files, 2026329/3912206 blocks
root@OpenWrt:/#
root@OpenWrt:/# mount /dev/sda1 /mnt
root@OpenWrt:/# cd /mnt
root@OpenWrt:/mnt# ls -l
drwxr-xr-x    2 root     root          4096 Jan  1  1970 etc
drwx------    2 root     root         16384 Jan 31 21:16 lost+found
drwxr-xr-x    9 root     root          4096 Apr 14  2018 storage
drwxr-xr-x    3 root     root          4096 Jan 20  2018 storage
drwxr-xr-x   11 root     root          4096 Apr  3  2018 upper
drwxr-xr-x    3 root     root          4096 Jan  1  1970 work
root@OpenWrt:/mnt# ls -li
261121 drwxr-xr-x    2 root     root          4096 Jan  1  1970 etc
    11 drwx------    2 root     root         16384 Jan 31 21:16 lost+found
391681 drwxr-xr-x    9 root     root          4096 Apr 14  2018 storage
783361 drwxr-xr-x    3 root     root          4096 Jan 20  2018 storage
130561 drwxr-xr-x   11 root     root          4096 Apr  3  2018 upper
522241 drwxr-xr-x    3 root     root          4096 Jan  1  1970 work
root@OpenWrt:/mnt#

在未損壞的文件系統上,相同目錄中看起來相似的文件將具有不同的 inode 和文件名。在這種情況下,似乎有尾隨空格。使用ls -Q或檢查文件名ls -bfind您可以通過與謂詞一起使用來操作(重命名或刪除)您想要的-inum索引節點編號,或者使用帶有互動式提示的 shell glob;就像是:

for f in storage*; do printf 'removing: —>%b<—\n' "$f"; rm -i -- "$f"; done

引用自:https://unix.stackexchange.com/questions/437766