如何在 Linux 上查找和删除损坏的符号链接 | Linux 中国
符号链接是指向另一个文件的 Linux 文件。如果删除了被引用的文件,符号链接会保留,但不会显示有问题,除非你尝试使用它。
- 来源:https://linux.cn/article-12298-1.html
- 作者:Sandra Henry-stocker
- 译者:geekpi
符号链接是指向另一个文件的 Linux 文件。如果删除了被引用的文件,符号链接会保留,但不会显示有问题,除非你尝试使用它。以下是查找和删除指向文件已被删除的符号链接的简单方法。
符号链接(symbolic link)在 Linux 系统上扮演了非常有用的角色。它们可以帮助你记住重要文件在系统上的位置,使你更容易访问这些文件,并让你不必为了更方便访问大文件而复制它们,从而节省了大量的空间。
什么是符号链接?
通常称它们为“符号链接”或“软链接”,符号链接是非常小的文件。实际上,符号链接真正包含的是它指向的文件的名称,通常包含路径(相对于当前位置或路径)。如果有个名为 ref1
的文件指向名为 /apps/refs/ref-2020
的文件,那么 ref1
的长度将为 19 个字符,即使 ref-202
文件有 2TB。如果指向 ./ref-2020
,那么长度仅为 10 个字符。如果指向 ref-2020
,那么只有 8 个字节。
如果你执行 vi ref1
之类的命令(其中 ref1
是符号链接的名称),你将编辑 ref1
指向的文件,而不是符号链接本身的内容。Linux 系统知道如何使用符号链接,并且可以做正确的事。同样,如果你使用诸如 cat
、more
、head
或 tail
之类的命令,那么将查看引用文件的内容。
另一方面,如果删除符号链接,你将删除该链接,而不是引用的文件。再说一次,Linux 知道怎么做。符号链接使得使用和共享文件更加容易,仅此而已。
符号链接损坏时
当一个符号链接所指向的文件从系统中删除或重新命名时,符号链接将不再起作用。符号链接只不过是存储在某个特定目录中的引用而已,它不会随着指向它的文件发生变化而更新或删除。它一直指向被引用的文件,即使这个文件早已消失。
如果你尝试使用指向一个不存在的文件的符号链接,那么将出现如下错误:
$ tail whassup
tail: cannot open 'whassup' for reading: No such file or directory
相关文章