如何在Linux上查找和删除损坏的符号链接

符号链接或“符号链接”是一个Linux文件,它只是指向另一个文件。如果引用的文件被删除,符号链接将保留,但在您尝试使用它之前,符号链接并不表示有问题。以下是一些查找和删除指向已移动或删除的文件的符号链接的简单方法。

思想库

符号链接在Linux系统中扮演着非常有用的角色。他们可以帮助你记住重要的文件位于一个系统,方便你来访问这些文件并保存大量的磁盘空间和麻烦让你不必要的复制大型文件只是为了让他们更容易。

符号链接到底是什么?

符号链接通常被称为“符号链接”或“软链接”,是非常小的文件。实际上,一个符号链接真正包含的是它所指向的文件的名称,通常包括文件系统路径(相对于当前位置或绝对位置)。如果一个名为ref1指向一个名为的文件/应用程序/文献/ ref - 2020,ref1即使ref-2020文件是2tb,也将是19个字符长。如果它指向/ ref - 2020,它的长度只有10个字符。如果它指向ref - 2020,只有八个。

如果您发出类似“vi ref1”的命令(其中ref1是符号链接的名称),您最终将编辑ref1指向的任何文件,符号链接本身的内容。Linux系统知道如何使用符号链接,并且只需要做正确的事情。类似地,如果您使用以下命令,更多的,尾巴,您将查看所引用文件的内容。

如果你删除一个符号链接,另一方面,你将删除链接,而不是被引用的文件。同样,Linux做有意义的事情。符号链接的本意是让文件的使用和共享变得更容易——仅此而已。

当符号链接被破坏时

当符号链接指向的文件从系统中删除或重命名时,符号链接将不再按预期工作。符号链接只不过是存储在某个特定目录中的一个引用,它不会随着指向文件的更改而更新或删除。它会一直指向引用的文件,即使该文件已经消失很久了。

如果你试图使用符号链接指向一个不存在的文件,你会得到这样的错误:

不能打开'whassup'阅读:没有这样的文件或目录

如果你试图访问指向它自己的符号链接(是的,更奇怪的事情发生了),你会看到这样的东西:

$ lrwxrwxrwx 1 shs shs 5 5月28日18:07 loopy -> loopy

而且,以防长清单中的第一个字母没有引起您的注意,它表明该文件是一个符号链接。的rwxrwxrwx权限是标准的,不反映符号链接指向的文件的权限。

发现断符号链接

find命令有一个选项,允许您定位指向不再存在的文件的符号链接。该命令列出当前目录中的符号链接:

发现美元。l类型

“l”(小写l)告诉find命令查找符号链接。

另一方面,下面显示的命令在当前目录中查找指向文件的符号链接不存在:

发现美元。-xtype l

为了避免在命令试图查看您没有检查权限的文件或目录时出现错误,您可以像这样将所有错误输出发送到/dev/null:

发现美元。-xtype l 2 > / dev / null

您还可以使用类似这样的命令找到损坏的符号链接。它比之前的要长,但应该做同样的事情:

发现美元。l类型!-exec test -e {} \;安全性2 > / dev / null

如何处理损坏的符号链接

除非您知道文件a符号链接引用将被替换,否则最好的方法就是简单地删除断开的链接。事实上,如果你愿意,你可以在一个命令中找到并删除坏掉的符号链接。

发现美元。-xtype l 2>/dev/null -exec rm {} \;

rm {}该命令的一部分变成“删除文件名”命令。

相反,如果您希望将符号链接与另一个文件相关联,则必须删除符号链接,然后重新创建它,使其指向新文件。这里有一个例子:

$ rm ref1 $ ln -s /apps/data/newfile ref1

总结

符号链接使引用的文件更容易找到和使用,但它们有时会演变成路标,为去年关闭的餐馆做广告。查找命令可以帮助您摆脱坏掉的符号链接,或者提醒您可能仍然需要的文件不存在。

加入网络世界社区吧足球竞猜app软件脸谱网LinkedIn对大家最关心的话题发表评论。
相关:

版权©2020足球竞彩网下载

工资调查:结果在