如何查找指定文件/目录的所有符号链接?


7

如何找到指定文件/目录的所有符号链接?

此前一个问题仅适用于硬链接(如果我正确阅读)。

Answers:


5

使用find /dir -lname /link/target。它用shell模式搜索链接内容; 例如,你可以使用*和?目标规范中的通配符。

这种方法的一个缺点是它搜索链接的内容,而不是它们的扩展路径,所以如果你需要找到绝对路径的相对链接(例如,如果有多个同名文件),你需要一个更复杂的脚本。

您也可以使用其他apporoach : find -L /dir -samefile /link/target. 这导致find解除引用符号链接,并在检查后由OS扩展的解除引用路径与提供的相同,因此相对链接和绝对链接都将由Linux处理。这解决了先前方法的问题。


是否可以使用busybox find执行此操作?它似乎没有-samefile-lname
g.rocket 2016年

@ g.rocket这更难了。您将需要使用类似的东西find ... -exec sh -c 'stat -c %N | egrep '-> yourlink$',替换yourlink您正在寻找的链接。而且,更慢,更慢。
whitequark 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.