私は次のファイル/ディレクトリ構造を持っています:
tsunami # find .
.
./dir1
./dir1/dirinner
./dir1/dirinner/innerfile
./logs
./messages
私は再帰的にファイルを見つけて、find / execを使用してそれらを処理しようとしています。
findのバージョン(busyboxに付属)では、ここで説明したように、execコマンドで検出されたファイル名を複数回使用することはできません。そこで、提案された解決策の1つを使用しました。だから、私はこれを書き直した:
find * -type f -exec echo {} +
これに:
find * -type f -exec sh -c 'echo $0' {} +
ただし、新しいバージョンでは、最も内側のファイルのみが検索され、他のファイルは検索されません。
両方の出力は次のとおりです。
tsunami # find * -type f -exec echo {} +
dir1/dirinner/innerfile logs messages
tsunami # find * -type f -exec sh -c 'echo $0' {} +
dir1/dirinner/innerfile
どうすれば修正できますか?最も内側のファイルだけでなく、すべてのファイルを見つけるために必要です。
-exec
条項が必要なのですか?すべてのファイルをでリストしますfind . -type f
。