後でファイルを削除するための検索出力を取得する

後でファイルを削除するための検索出力を取得する

このコマンドから結果を取得したいと思います:

find . -type f -size +200M -exec ls -lh {} \;

コンテンツを何らかの形式の変数に保存し、見つかったファイルを削除します。

これどうやってするの?

答え1

findファイルを削除するためだけに、変数にの結果を保存する必要はありません(言及していない特定の要件がない限り)。 では、それを自動的に実行するfind特別な-deleteパラメータが提供されています。

find . -type f -size +200M -print -delete

としてlsコマンドの出力を解析することは推奨されません

によって返されたファイルを実際に解析したい場合はfind、次のようにする必要があります。

find . -type f -size +200M -print0 | xargs -0 rm -v

シェル変数をヌル文字で保持することはできないため、スペースでスクリプトを分割したくない(スペースでスクリプトを分割すると、巨大な虫) の場合、回避策としては、リストを一時ファイルに保存するか、データをシリアル化します (例base64)。

関連情報