- ベストアンサー
findコマンドのオプションについて
UNIXやLinuxの find コマンドの -noleaf オプションの意味を教えてください。 「manを見ただけではよく理解できませんでした・・・」 すみませんが、よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
web で manpage を引くと ----- ここから引用 ------ -noleaf 「ディレクトリのハードリンク数から 2 を引いたものが、そのディレクトリに含まれるサブディレクトリである」とする最適化動作を行わない。 このオプションは Unix のディレクトリリンク方式に従わないファイルシステムを検索するときに必要となる (例えば CD-ROM や MS-DOS ファイルシステム、AFS ボリュームなど)。 通常の Unix ファイルシステムでは、それぞれのディレクトリは最低二つのハードリンクを持っている (ディレクトリ名のエントリと `.' エントリ)。 またサブディレクトリがある場合には、それぞれのサブディレクトリ内にさらに `..' と言うエントリができる。 find がディレクトリを調べる際、そのディレクトリのハードリンクの数よりも 2 少ないエントリがサブディレクトリであることが判明したら、 残りのエントリはディレクトリではないものとされる (ディレクトリツリーの `leaf (葉)' であるとみなされる)。 もしファイル名だけが必要な場合には、そのファイルの内容は評価されない。この最適化を用いると、検索の速度が非常に向上する。 ----- ここまで ---------- というわけで、UNIX のファイルシステムとハードリンクについての知識があれば理解できます。 実用上はマニュアル前半部分にあるように、CD-ROM や MS-DOS のファイルシステムを検索するときに付ければよい。