sudo rm -rf는 루트가 소유한 빈 디렉토리에서 "디렉토리를 삭제할 수 없습니다"를 반환합니다.

sudo rm -rf는 루트가 소유한 빈 디렉토리에서 "디렉토리를 삭제할 수 없습니다"를 반환합니다.

내 데비안 시스템에 디렉토리가 있습니다. 디렉토리는 다음과 같습니다:

root@debian:/3/20150626# stat 00
File: `00'
Size: 6             Blocks: 0          IO Block: 4096   directory
Device: fe00h/65024d    Inode: 4392587948  Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-06-25 20:00:00.086150791 -0400
Modify: 2015-07-07 12:39:04.174903234 -0400
Change: 2015-07-07 12:39:04.174903234 -0400
Birth: -

디렉터리가 비어 있습니다.

root@debian:/3/20150626# ls -al 00
total 0
drwxr-xr-x 3 root root  6 Jul  7 12:39 .
drwxr-xr-x 3 root root 23 Jul  7 12:56 ..

하지만 내 시스템은 그렇게 생각하지 않습니다.

root@debian:/3/20150626# rm -rf 00
rm: cannot remove `00': Directory not empty

왜 이런 일이 일어나고 있는지 전혀 모르겠으며 앞으로 나아갈 길을 찾을 수 없습니다. 누구든지 도와줄 수 있나요?

내가 찾은 이전 질문 중 어느 것도 이 특정 문제를 해결하지 못했습니다. 그러나 유사한 게시물에서 본 몇 가지 문제를 해결하려면 다음을 수행하십시오.

a.) 폴더는 이전에 여러 번 삭제된 많은 폴더를 이전에 생성한 실행 중인 프로세스에 의해 생성되었습니다. 이 특별한 질문이 막혔습니다.

b.) 지금은 이 디렉토리에 아무 것도 기록되어서는 안 됩니다. 나는 이것을 여러 번 확인했지만 ls -al출력은 항상 아무것도 반환하지 않습니다.

c.) lsof를 확인했는데 디렉토리에 아무것도 열려 있지 않습니다.

root@debian:/3/20150626# lsof 00
root@debian:/3/20150626# 

d.) rm다른 것에 대한 앨리어싱은 없습니다. 이는 데비안과 매우 유사합니다... rm핵심 Bash 프로그램(예: 등)에 대해 특별한 작업을 수행하지 않습니다.

e.) 이름 변경은 허용되지만 삭제는 여전히 불가능합니다.

root@debian:/3/20150626# mv 00 delete_me
root@debian:/3/20150626# ls -al
total 0
drwxr-xr-x 3 root root  30 Jul  7 13:45 .
drwxr-xr-x 7 root root 105 Jul  7 12:57 ..
drwxr-xr-x 3 root root   6 Jul  7 12:39 delete_me
root@debian:/3/20150626# rm -rf delete_me
rm: cannot remove `delete_me': Directory not empty
root@debian:/3/20150626# ls -al delete_me/
total 0
drwxr-xr-x 3 root root  6 Jul  7 12:39 .
drwxr-xr-x 3 root root 30 Jul  7 13:45 ..

**참고로 앞으로는 "delete_me"라고 부르겠습니다. 이름을 바꿨으므로 그대로 두겠습니다.

f.) 이것은 이것을 실행할 때 반환되는 유일한 디렉토리입니다 find.

root@debian:/3/20150626# find / -type d -name delete_me
/3/20150626/delete_me
root@debian:/3/20150626# find delete_me
delete_me

g.) lsattr에는 아무것도 표시되지 않습니다.

root@debian:/3/20150626# lsattr
---------------- ./delete_me

답변1

답을 찾았습니다. @JeffSchaller가 제안한 것처럼 링크에 문제가 있습니다. 해결책은 xfs_check를 실행하여 링크가 올바르지 않은지 확인한 다음 xfs_repair를 실행하여 수정하는 것입니다.

  1. 실행 mount하여 장치 이름을 확인하세요. 내 것은/dev/mapper/vg3-lv3
  2. umount /3
  3. xfs_check /dev/mapper/vg3-lv3다음을 반환합니다.

    link count mismatch for inode 4392587948 (name ?), nlink 3, counted 2

    link count mismatch for inode 12983188890 (name ?), nlink 1, counted 2

  4. xfs_repair /dev/mapper/vg3-lv3이는 링크가 수정되었음을 나타냅니다.

    resetting inode 4392587948 nlinks from 3 to 2

    resetting inode 12983188890 nlinks from 1 to 2

잘못 연결된 다른 인덱스 노드가 있는 것으로 나타났습니다.

모든 도움에 감사드립니다. 하지만 xfs_repair의 흑마법을 사용하여 내 문제가 해결되었습니다.

답변2

폴더/디렉토리의 속성에 "" - 불변성이 활성화되었습니다! 확인하세요. lsattr 명령은 폴더/디렉토리에 ""*"를 사용하여 끄면 활성화됩니다.

샤르트르이'폴더'

*'를 선택하여 원하는 작업을 수행할 수 있습니다.

관련 정보