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