ここで、末尾までパイプすることでcommand
in の呼び出し回数を数えることができることを読みました。-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
それはひどく間違っています。