sudo rm -rf 在 root 拥有的空目录上返回“无法删除目录”

sudo rm -rf 在 root 拥有的空目录上返回“无法删除目录”

我的 Debian 系统上有一个目录。目录是:

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没有为其他任何东西起别名。它与 Debian 非常接近...对于任何核心 Bash 程序(例如rm等)没有做任何特别的事情。

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 命令验证文件夹/目录是否具有属性“如果您使用“*”将其关闭,则激活

查特尔-i'文件夹'

*”这样您就可以执行您想要的任务。

相关内容