我很熟悉-lname选项来查找,但是它并没有像我期望的那样工作。具体地说,它似乎不匹配任何内容,除非我与symlink在同一个目录中。这是没有用的,因为我有一个非常嵌套的目录结构,我试图在其中搜索,而find的递归性正是我所需要的。
这是我所看到的问题的一个简化示例。我有一个包含7个子目录的目录:
$ ls
01 02 03 04 05 06 07除了07之外,每个目录都有100个符号链接,大约有20个。但是当我运行find时,我什么也得不到。
$ find . -lname "*"
$但是,如果我cd进入07目录,突然发现works:
$ 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
...我做错了什么?
发布于 2013-07-04 08:09:30
您希望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/addr2linehttps://stackoverflow.com/questions/17460021
复制相似问题