lrwxrwxrwx. 1 oracle oinstall 10 Oct 14 03:47 abc -> xyz
drwxr-xr-x. 6 oracle oinstall 4 Oct 26 21:11 xyz
我想找到 xyz 有一个名为 abc 的符号链接
答案1
不存在对文件或目录的反向引用或符号链接计数。
例如,删除 xyz 目录是完全有效的。任何符号链接的存在都不会阻止这种情况,也不会阻止 xyz 中的数据被破坏。任何符号链接只有在尝试打开它们时才会被识别为无效 - 它们将成为“损坏的链接”。
对于以下情况,情况会大不相同:硬链接。
答案2
和zsh
:
print -rC1 - **/*(ND@e['[[ $REPLY -ef xyz ]]'])
将print
r
aw on 1
C
olumn 类型为符号链接 ( ) 的文件,@
具有任何名称 ( *
),位于子目录 ( ) 下和子目录级别 ( **/
),包括隐藏目录 ( D
),如果没有匹配 ( ),则不会抱怨,并且这些文件与符号链接解析后的N
文件相同xyz
( -ef
)。
请注意,它还会报告到另一个符号链接的符号链接或到xyz
.
如果您只想查找目标是文字 string 的符号链接xyz
,那么只需:
find . -lname xyz
答案3
abc
如果您想查找当前目录中命名为文件的所有链接,xyz
可以使用以下命令来完成:
find -L / -samefile `readlink -f xyz` -name abc
readlink -f xyz
可以替换为文件的完整路径(实际上它是针对当前目录中的文件执行的)。
如果您知道确切的链接名称,但只想查找xyz
具有任何名称的文件的所有链接,则可以像name
这样省略:
find -L / -samefile `readlink -f xyz`
您还可以2> /dev/null
在命令末尾添加以抑制“权限被拒绝”警告。