• ベストアンサー

findコマンドのオプションについて

UNIXやLinuxの find コマンドの -noleaf オプションの意味を教えてください。 「manを見ただけではよく理解できませんでした・・・」 すみませんが、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

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

関連するQ&A

  • findコマンドの-nameについて

    独習Linux第2版で勉強しています。 findコマンドのnameオプションについて質問があります。 テキストでは下記のようなコマンド例が載っています。 find Reports/ -type f -name '*\.bak' -exec rm {} \; nameオプションでワイルドカードを使いたいので パターン部分をシングルクォートで囲っていることは理解できるのですが 「.bak」のドット前にバックスラッシュがついている意味がわかりません。 ネットでfindコマンド例を探してみると、 find Reports/ -type f -name '*.bak' -exec rm {} \; という感じでバックスラッシュなしで説明されています。 実行結果に変わりはないようですが、意味が理解できず困っています。 教えてください。

  • unixのfindコマンドについて。

    unix(AIX)のfindコマンドで「find ./ -type f」というコマンドで一覧を取得しています。 「./」の中に「hogehoge -> /tmp/test」というような シンボリックリンクを使用しているディレクトリがある場合も、 「./hogehoge/hoge.log」 というように表示させるにはどうすれば良いでしょうか。 ご回答の程、宜しくお願い致します。

  • コマンドオプション

     Linuxについての講義を今日聴き、コマンドオプションの事を知りました。  コマンドオプションと、コマンドについてもっと詳しく知りたいので、コマンドオプション集、コマンド集のような、たくさんのコマンドやオプションについて説明してあるHPや文献があれば教えていただきたいです。

  • findコマンドについて

    unix コマンドについて質問です。 ファイル1の中に"A=1" ," B=2", "C=3"という文字列が入っているとします。 ファイル2の中に"D=1" , "E=2", "F=3"という文字列が入っているとします。 そのことを自分は知りません。 Aという文字が入っているファイルを探す為、 以下のfindコマンドを打ち、ファイル1のlsの結果が表示されました。 find ./ -type f -exec grep 'A' {} \; -ls その後、出力されたファイル1の中からBとCでgrepしてB=2", "C=3"を表示したいと思います。 上のコマンドと併せて一度でできるコマンドを教えていただけないでしょうか? 宜しくお願いします。

  • findコマンドについて

    findコマンドをコマンドプロンプトより下記のとおり実行しました。 find "保留中" D:\find.txt 想定された結果を得る事ができました。 しかし、同じコマンドをバッチファイル(find.bat)として実行すると、コマンドを 繰り返し実行し続けていて終了せずに、結果を表示する事ができません。 何がいけないのでしょうか?

  • lsコマンドのオプションについて

    Linuxのlsコマンドのオプションについて質問です。 以下のオプションの意味が良く分かりません。具体的にどういうことなのでしょうか。 また、実際の現場では良く使われるオプションですか? -F:タイプ識別子 (*/=>@| のうちの一つ) を付けて出力する

  • mountコマンドのオプションについて

    Linuxのmountコマンドのオプションで-aがありますが、/etc/fstabに記述があるファイルシステムをすべてマウントするというのはどういう意味なのでしょうか?ご教授よろしくお願いします。

  • コマンドプロンプトのコマンド、オプションについて

    コマンドプロンプトを使用して指定バイト数以上のファイルを検索したいのですが、 私の調べた限りでは適当なコマンドが存在しないように思われます。 Linuxコマンドであれば、 ”find . -name '*.bat' -size +30k” などとコマンドを入力すれば、30kバイト以上の"~.bat"を検索できると思うのですが、 コマンドプロンプトでそういった事はできるのでしょうか? ご存知の方、ご回答お願い致します。 また、コマンドプロンプトでは実現不可能であればその旨を教えて頂ければ幸いです。

  • findコマンド

    findコマンドを用いて”昨日以降に変更・更新のあったファイル”を検索するにはどうしたらよいでしょうか? ご教授ねがいます。 また、-ctime、-atimeを用いたときの日付の±はどういう意味になるのでしょうか? 上記質問とあわせて教えていただければ幸いです。

  • コマンドとコマンドラインとコマンドラインオプションの違いを教えてください。

    ただ今Cの関数を勉強しているのですが、勉強用HPに ************************ int main(int argc, char *argv[ ]) 戻り値:int型、引数:argc, argv 後者は、コマンドライン オプションを受け付ける。 argc はオプションの数、argv はオプションの内容となる。 ************************ とあります。 そこで質問なのですが、コマンドラインオプションとは何ですか? また、 ・コマンド ・コマンドライン ・コマンドラインオプション の違い、それぞれの意味も教えてください。 マックのコマンド+s、コマンド+vみたいなものですか? それともunixのcdや./のようなものでしょうか。 わからない単語が出てくると、 そこで頭が混乱してしまい先に進めない性質なので困っています。 どうぞご教授よろしくお願いします。