如何使用 find 搜索符号链接?
这就是我所拥有的:
abc:~/findtests$ ls -l
total 0
lrwxrwxrwx 1 abc abc 22 2010-11-30 14:32 link1 -> /home/abc/testpy1.py
我正在尝试在当前目录中搜索链接 link1
。
我做到了:
abc:~/findtests$ find -L . -lname 'link1'
abc:~/findtests$ find -P . -lname 'link1'
abc:~/findtests$ find -L . -lname 'test*'
abc:~/findtests$ find -P . -lname 'test*'
但无法得到任何输出。我做错了什么?
This is what I have:
abc:~/findtests$ ls -l
total 0
lrwxrwxrwx 1 abc abc 22 2010-11-30 14:32 link1 -> /home/abc/testpy1.py
I am trying to search for the link link1
in the current directory.
I did :
abc:~/findtests$ find -L . -lname 'link1'
abc:~/findtests$ find -P . -lname 'link1'
abc:~/findtests$ find -L . -lname 'test*'
abc:~/findtests$ find -P . -lname 'test*'
But could not get any output. What am I doing wrong ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先,从手册页开始:
符号链接的目标与“test*”不匹配,因为存在完整路径。尝试“*/测试*”。
To start with, from the man page:
The target of the symbolic link doesn't match 'test*' because there is the full path. Try '*/test*'.
find 怎么样? -type l -name link1
?另外,
查找 . -lname '*test*'
似乎对我有用。How about
find . -type l -name link1
?Also,
find . -lname '*test*'
seems to work for me.“使用 -L 会导致 -lname 和 -ilname 谓词始终返回 false。” find 手册页说,
所以这两个无论如何都不起作用
,但要解决的问题是通过其目标路径或其名称来查找符号链接,如 aix 的答案所示
"Using -L causes the -lname and -ilname predicates always to return false." says the find man page
so those two wouldn't work anyway
but is the problem to be solved to find a symlink via its target path or by its name as aix's answer does