複数のフォルダを含むディレクトリがあり、各フォルダには同じ圧縮ファイル名 "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.log
gz名に基づいて解凍して名前を変更できるようにしたいです。例えば:
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.2
(spark.log.1.log
意味がないか、最後に回転したログファイルではなくサービスのログファイルspark.1.log
として解釈できるという意味ではありません)。spark.1
spark.log
しかし、ログファイルを解凍する理由はほとんどありません。コンテンツを圧縮すると、通常、コンテンツのアクセス速度が速くなります。変更にはコストがかかりますが、通常はログファイルをアーカイブ/回転した後は変更しません。zgrep
、、vim
(そのように設定したzless
場合でも)を使用して内容を確認できます。使用している場合は、最も古いログから最新のログまですべてのログを送信します。less
zcat -f ./*.log*(nOn) | grep...
zsh
grep