なぜ出力に違いが出るのか
find . -exec ls '{}' \+
そして
find . -exec ls '{}' \;
私が得たもの:
$ find . -exec ls \{\} \+
./file1 ./file2
.:
file1 file2 testdir1
./testdir1:
testdir2
./testdir1/testdir2:
$ find . -exec ls \{\} \;
file1 file2 testdir1
testdir2
./file2
./file1
ベストアンサー1
これは例で説明するのが一番わかりやすいかもしれません。find
次のようなファイルが見つかったとします。
file1
file2
file3
-exec
セミコロン( )と一緒に使用するとfind . -exec ls '{}' \;
、
ls file1
ls file2
ls file3
ただし、代わりにプラス記号 ( find . -exec ls '{}' \+
) を使用すると、可能な限り多くのファイル名が単一のコマンドに引数として渡されます。
ls file1 file2 file3
ファイル名の数は、システムの最大コマンド ライン長によってのみ制限されます。コマンドがこの長さを超えると、コマンドは複数回呼び出されます。