1

-lname对查找选项很熟悉,但它并没有像我期望的那样工作。具体来说,它似乎不匹配任何东西,除非我与符号链接位于同一目录中。这是没用的,因为我有一个非常嵌套的目录结构,我正在尝试搜索并找到我需要的递归性。

这是我看到的问题的简化示例。我有一个包含 7 个子目录的目录:

$ ls
01  02  03  04  05  06  07

每个目录都有 100 个符号链接,除了 07,它有大约 20 个。但是当我运行 find 时,我什么也得不到。

$ find . -lname "*"
$

但是,如果我 cd 进入 07 目录,突然发现工作正常:

$ cd 07
$ find . -lname "*"
./DSC_4599.JPG
./DSC_4601.JPG
./DSC_4602.JPG
./DSC_4603.JPG
./DSC_4604.JPG
./DSC_4605.JPG
./DSC_4612.JPG
./DSC_4613.JPG
./DSC_4614.JPG
./DSC_4615.JPG
./DSC_4616.JPG
./DSC_4617.JPG
./DSC_4618.JPG
./DSC_4619.JPG
./DSC_4620.JPG
./DSC_4621.JPG
./DSC_4622.JPG
./DSC_4623.JPG
./DSC_4624.JPG
./DSC_4625.JPG
./DSC_4626.JPG
./DSC_4627.JPG
$ 

此目录的列表显示如下:

$ ls -l
total 176
lrwxr-xr-x  1 michael  staff  52 Jul  1 21:15 DSC_4599.JPG -> ../../../md5/fb/fb70d93d1051896d180d1cbeb19d2d00.JPG
...

我究竟做错了什么?

4

1 回答 1

1

您想find遵循符号链接。find -L,至少在非常接近 osx 的 FreeBSD 上。

angst(~/test2) > ll -l
total 0
lrwxr-xr-x  1 antiduh  antiduh     8B Jul  3 20:09 binlink@ -> /usr/bin
-rw-r--r--  1 antiduh  antiduh     0B Jul  3 20:09 sekrits
angst(~/test2) > find .
.
./sekrits
./binlink
angst(~/test2) > find -L .
.
./sekrits
./binlink
./binlink/bc
./binlink/addr2line
于 2013-07-04T00:09:30.070 回答