find -print は常に起動ディレクトリを出力します。

find -print は常に起動ディレクトリを出力します。

500,000個のファイルを含むディレクトリに何回のファイルとフォルダが繰り返しあるかを計算しようとしていますfind(注:再帰的そして下に)。次のコマンドを使用しています。

find my_folder -name '*' -print | wc -l

しかし、最初の部分の実行中に奇妙な点が見つかりました。

find my_folder -name '*' -print

my_folder常に最初の行にフォルダ名を最初に印刷します(この場合)。最初のコマンドでは、ファイル数が1ずつ増加します。

なぜそんなことですか?これを防ぎ、findに次の印刷のみを許可するにはどうすればよいですかmy_folder

答え1

探しているので、パターンが*一致するので、ターゲットディレクトリと一致します。.文書-type f、ファイルのみを一致させるにはを追加する必要があります。

find my_folder -type f

その場合は、を使用して一致をブロックすることもできGNU findます。-mindepth 1.

find my_folder -mindepth 1

答え2

実際にファイルだけが必要な場合は、コマンドラインで指定されたディレクトリだけを一致させません-type f-mindepth 1

関連情報