もともと2014年4月28日に別のところに書いていた記事を、備忘的に持ってきたものです。
方法
find -type l -and -xtype d
-xtype
の指定は、シンボリックリンクを辿った先のファイルがどのような属性であるかを調べる1。そのため、ファイル自体がシンボリックリンクであり(-type l
)、かつそれを辿った先がディレクトリである(-xtype d
)という条件で検索すればよい。
経緯
「ディレクトリを書庫に格納するとき、シンボリックリンクが示すファイルは実体のほうを書庫に格納する」という方法で書庫を作りたかったのだが、その中にディレクトリを指し示すようなシンボリックリンクがあると不用意に書庫のサイズを大きくしてしまいかねないので、それを避けたかったのである。
-
-xtype
がこのような挙動になるには、find
コマンドのデフォルトオプション(ファイルを列挙する過程ではシンボリックリンクも単にファイルとみなし、辿ることはしない。オプションを明示的に書くなら-P
)を使っているという前提が必要である。詳細は例えばMan page of FIND(OSDNによる日本語訳)を参照。 ↩