한 디렉터리에 동일한 이름을 가진 여러 파일/디렉터리가 있을 수 있나요?

한 디렉터리에 동일한 이름을 가진 여러 파일/디렉터리가 있을 수 있나요?

동일한 디렉터리에 "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

관련 정보