1

findのオプションについてはよく知ってい-lnameますが、期待どおりに機能しません。具体的には、シンボリックリンクと同じディレクトリにいない限り、何にも一致しないようです。検索しようとしている非常にネストされたディレクトリ構造があり、検索の再帰性が必要なものであるため、これは役に立ちません。

これは、私が見ている問題の簡単な例です。7 つのサブディレクトリを持つディレクトリがあります。

$ ls
01  02  03  04  05  06  07

各ディレクトリには、約 20 の 07 を除いて 100 のシンボリック リンクがあります。しかし、find を実行しても何も得られません。

$ find . -lname "*"
$

ただし、07 ディレクトリに cd すると、突然動作することがわかります。

$ 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 に答える