複数のフォルダに同じzipファイル名を持つ複数のgzファイルをgunzipに圧縮する

複数のフォルダに同じzipファイル名を持つ複数のgzファイルをgunzipに圧縮する

複数のフォルダを含むディレクトリがあり、各フォルダには同じ圧縮ファイル名 "spark.log"を持つ複数の.gzファイルが含まれています。すべてのファイルを一度に解凍し、名前をgzファイルに変更するには?

私のデータは次のとおりです

フォルダ一覧

A
B
C
D

それぞれに次のファイルがあります。

A
spark.log.gz
spark.log.1.gz
spark.log.2.gz
spark.log.3.gz
B
spark.log.gz
spark.log.1.gz
spark.log.2.gz
spark.log.3.gz
C
spark.log.gz
spark.log.1.gz
spark.log.2.gz
spark.log.3.gz
D
spark.log.gz
spark.log.1.gz
spark.log.2.gz
spark.log.3.gz

含まれている各gzファイル内で、spark.loggz名に基づいて解凍して名前を変更できるようにしたいです。例えば: spark.log.1.gz->spark.log.1.log

ベストアンサー1

gzip元の名前は保存または保存できますが、次のコマンドを実行して名前を表示できますgzip -Nl file.gz

$ gzip spark.log
$ mv spark.log.gz spark.log.1.gz
$ gzip -l spark.log.1.gz
         compressed        uncompressed  ratio uncompressed_name
                170                 292  51.4% spark.log.1
$ gzip -lN spark.log.1.gz
         compressed        uncompressed  ratio uncompressed_name
                170                 292  51.4% spark.log

gunzipこのオプションを超えないと、解凍されたファイル名としては使用されず、-Nサフィックスが削除されたgzip圧縮ファイル名のみが使用されます.gz

zip圧縮されたアーカイブ形式のInfo-ZIPおよび関連形式のコマンドと混同する可能性がありますがzip、gzipは単にコンプレッサーです(たとえばcompress、、、bzip2... xz)。

したがって、次のファイルなしでgunzip呼び出すだけです。-N

gunzip -- */spark.log*.gz

spark.log、、spark.log.1...を取得しますspark.log.2spark.log.1.log意味がないか、最後に回転したログファイルではなくサービスのログファイルspark.1.logとして解釈できるという意味ではありません)。spark.1spark.log

しかし、ログファイルを解凍する理由はほとんどありません。コンテンツを圧縮すると、通常、コンテンツのアクセス速度が速くなります。変更にはコストがかかりますが、通常はログファイルをアーカイブ/回転した後は変更しません。zgrep、、vim(そのように設定したzless場合でも)を使用して内容を確認できます。使用している場合は、最も古いログから最新のログまですべてのログを送信します。lesszcat -f ./*.log*(nOn) | grep...zshgrep

おすすめ記事