小编Lui*_*ira的帖子

如何查找其inode未被任何目录引用的文件

好的,前段时间我发现了 nautilus 中的一个 bug。

/tmp$ mkdir test/
/tmp$ mkdir test2/
/tmp$ echo "very important stuff" > test/important-file.txt
/tmp$ ln -s /tmp/test/ test2/test
Run Code Online (Sandbox Code Playgroud)

如果您尝试mv test2/test .bash 足够聪明来回答:

mv: «test2/test» and «./test» identify the same file
Run Code Online (Sandbox Code Playgroud)

我在另一个位置创建了一个符号链接来测试(一个包含文件的目录),然后我将符号链接移动到目录所在的位置

但是,鹦鹉螺进入游戏:

将符号链接移动到 de 目录在 nautilus 中的位置

Nautilus 知道符号链接是一个目录,它好心地让我合并它们:

在此处输入图片说明

现在,我合并了它们(我显然认为这是两个不同的目录)。结果……

tmp$ ls -la
lrwxrwxrwx  1 cool-user  best-group-ever      9 août  26 23:51 test -> /tmp/test
Run Code Online (Sandbox Code Playgroud)

好的。所以我丢失了我的目录(这是正常的,因为我覆盖了它)并最终得到了一个无用的循环符号链接,但是......我的important-file.txt? 它有一个 inode,它不再被我系统中的任何目录引用。

显然,我没有在便利贴中写那个 inode ......那么,它在哪里?。有没有办法找到每个文件都没有被任何目录引用的inode?

作为一个额外的问题:这是鹦鹉螺的预期行为,还是一个错误?

为什么以及如何发生在我身上是一个很长的故事,但我的目录中有一些非常重要(和机密)的文件,我想取回

nautilus unity directory symbolic-link

5
推荐指数
2
解决办法
1409
查看次数

标签 统计

directory ×1

nautilus ×1

symbolic-link ×1

unity ×1