我的 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 来修复它们。
- 运行
mount
查看设备名称。我的是/dev/mapper/vg3-lv3
umount /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
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'文件夹'
*”这样您就可以执行您想要的任务。