如何查找并列出为特定文件创建的所有符号链接?

如何查找并列出为特定文件创建的所有符号链接?

我已在多个路径上为特定文件或目录创建了许多符号链接。我想要创建符号链接路径(位置)的完整列表。

例子:

我在许多目录上为目录创建了符号链接~/Pictures。如何列出指向该~/Pictures目录的所有符号链接?

这可能吗?如果可以,那怎么办?

答案1

以下是一个例子:

find -L /dir/to/start -xtype l -samefile ~/Pictures

或者,也许更好:

find -L /dir/to/start -xtype l -samefile ~/Pictures 2>/dev/null

摆脱一些错误,如Permission deniedToo many levels of symbolic links或,当没有正确的权限或其他情况时,这些错误会抛出File system loop detectedfind

  • -L- 跟随符号链接。

  • -xtype l- 文件是符号链接

  • -samefile name- 文件引用与 相同的 inode name。当-L生效时,这可以包括符号链接。

笔记:

  • 使用小写字母 L -xtype l,而不是数字 1。
  • 在 macOS / Darwin 上,-xtype-type

答案2

非常简单,使用选项-lname

find / -lname /path/to/original/dir

man find

-lname pattern
       File is a symbolic link whose contents match shell pattern pattern.  The
       metacharacters do not treat `/' or `.' specially.  If the -L option or the
       -follow option is in effect, this test returns false unless the symbolic link
       is broken.

笔记:请记住,符号链接可能位于任何地方,包括远程系统(如果您正在共享文件),因此您可能无法找到它们全部。

答案3

尝试这个 :

ls -i ~/

277566 Pictures

find . -follow -inum 277566(查找具有相同索引节点数字 )

它将显示其所有符号链接路径。

答案4

相关内容