동일한 디렉터리에 "storage"라는 동일한 이름을 가진 두 개의 파일(디렉터리)이 표시되는 이유는 무엇입니까? 아이노드 번호가 다릅니다.
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#
답변1
손상되지 않은 파일 시스템에서는 동일한 디렉토리에 있는 유사해 보이는 파일의 inode와 파일 이름이 다릅니다. 이 경우 후행 공백이 있는 것으로 보입니다. ls -Q
파일 이름을 사용하거나 확인하세요 ls -b
. inode 번호 를 조건자와 함께 사용하거나 다음과 같은 대화형 프롬프트와 함께 쉘 glob을 사용하여 find
지정하여 원하는 inode 번호를 조작(이름 바꾸기 또는 삭제) 할 수 있습니다.-inum
for f in storage*; do printf 'removing: —>%b<—\n' "$f"; rm -i -- "$f"; done