1GB以上のディレクトリにあるすべてのファイルを圧縮するシェルスクリプト

1GB以上のディレクトリにあるすべてのファイルを圧縮するシェルスクリプト

私のファイル/var/logs/*.logでは、サイズが1 GBを超えるすべてのファイルを圧縮するスクリプトを生成する必要があります/var/logs/*.zip。たとえば、サイズが1024 MBを超えるaccess_log.log場合です。access_log.zip

ベストアンサー1

これは機能することができます(実行中/var/log):

find *.log -type f -size +1G |xargs -L1 -I file zip file.zip file

説明する

  • find *.log -type f -size +1G1GBを超えるすべてのファイルを探す
  • xargs -L1 -I file zip file.zip fileすべてのファイルを圧縮

xargsマルチコアシステムを使用している場合(おそらくそうです)、引数を指定して4つのzipコマンドを並列に実行できます-P4

より多くのスペースを節約したい場合は、zipこの-9オプションを提供してください。

また、Unixの世界ではgzipbzip2およびxz/がZipよりも一般的である点に注目する価値があります。lzip

おすすめ記事