
500M より大きく、1 日より古いファイルを検索し、これらのファイルを圧縮する必要があります。拡張子が.gzのファイルも省略する必要があります。これはどのように達成できますか?
答え1
LC_ALL=C find . ! -name '*.gz' \
-type f \
-size +"$((500*1024*1024))c" \
-mtime +0 \
-exec gzip {} +
これは圧縮に使用されますgzip
。また、さまざまな圧縮形式を使用する他の圧縮ユーティリティを表示または確認xz
してください。bzip2
compress
いくつかのfind
実装(例:GNU)find
も-size +500M
。
進行状況に関する情報を取得する-v
オプションを追加できます。gzip
file
両方が存在する場合は、file.gz
確認メッセージが表示されます。-f
強制的に圧縮したい場合、または上書きしたくない場合にプロンプ< /dev/null
トfile.gz
に応答したくない場合は、このオプションを追加します。
-mtime +0
年齢が整数日数に丸められていることを確認してください。下に0より大きいため、この値は1日以上経過したファイルに適用され、-size +500M
サイズ(MB単位の整数)が丸められていることも確認します。戻るより大きいので、サイズ500
が大きいファイルの場合も同様です。厳しく500M(524288000バイト)より大きい。
これは、ファイル名の先頭に現在のロケールで有効な文字が含まれているかどうかにかかわらず、次の名前で終わるファイルが一致することをLC_ALL=C
確認するためのものです。ただし、これはエラーメッセージの言語に影響を与えるサイズ効果をもたらす可能性があります。*.gz
.gz
実際に実行せずに何をするかを確認したい場合gzip
に変更してくださいecho gzip
。