find
ファイルを検索し、さらに処理するために結果を繰り返すスクリプトがあります。
for file in $(find ~ -type f -size +1G); do
filename=$(basename $file)
echo $file
done
find
コマンドを直接実行すると、一致が直接出力されます。ただし、このスクリプトでは、まずコマンドが完全に完了するのを待ってから、loop
結果を繰り返します。find
コマンドがfind
一致するものを見つけると、一致を介してループを実行できますか?
outputを使用することは可能ですpipe
が、ループ内の単純なコンテンツラインよりも複雑な作業をしたいと思います。
ベストアンサー1
代わりに、このアプローチを使用する方法を学びます。
find ~ -type f -size +1G -exec bash -c 'do-stuff-with "$1"' bash_find {} \;
find
コンストラクタで-exec ... {} \;
find コマンドを使用して見つけたbash -c '...'
各ファイルに対して実行するインラインスクリプトを開きます。
bash_find
はインラインスクリプトの名前で、スクリプトを表します。エラーが発生すると、スクリプトは停止し、エラーが印刷された視覚的な出力とエラーの簡単な説明を提供する$0
ために使用されます。bash_find