ここで、末尾までパイプすることでcommandin の呼び出し回数を数えることができることを読みました。-exec command {} +| wc -l
私はそれ-execdirが異なっていることを理解していますが、その中で、一致するすべてのサブディレクトリがfind検出さcommandれると、サブディレクトリに一致するファイルが複数ある場合、それが含まれているサブディレクトリからの呼び出しが実行されます。呼び出しの数が、一致するサブディレクトリの数と等しくなり、それらのサブディレクトリ内の一致するファイルの数と一致する呼び出しの数ではないのですか?
次を実行すると、最終的に後者になります。
$ find . -name "bob*" -execdir echo {} + | wc -l
execdir command {} +前者がそうであるべきであると州のマニュアルページ:
同じように
-exec行動、+の形は-execdirより1つのマッチファイルよりもプロセスへのコマンドラインが、任意の特定の呼び出し構築するcommand同じサブディレクトリに存在する唯一のリストファイル意志を。
すなわち
私は得ています:
./file1inDir1
./file2inDir1
./file3InDir2
./file4InDir3
私がこれを期待しているとき、manページに基づいて:
./file1inDir1 ./file2inDir1
./file3InDir2
./file4InDir3
echoあり、引数がによって生成さ{} +れ、ファイル名に改行がない場合(ほとんどの人はそうではありません)、行数は呼び出しの数であり、機能します。コマンドが言われると、head -n 999000 /dev/urandomそれはひどく間違っています。