Gzip

gunzip 目錄中的所有 .gz 文件

  • August 26, 2020

我有一個包含大量.txt.gz文件的目錄(其中名稱不遵循特定模式。)

對他們來說最簡單的方法是gunzip什麼?我想保留他們原來的名字,讓他們whatevz.txt.gzwhatevz.txt

就這個怎麼樣?

$ gunzip *.txt.gz

gunzip將創建一個不帶.gz後綴的 gunzipped 文件,並預設刪除原始文件(詳見下文)。*.txt.gz將由您的 shell 擴展為所有匹配的文件。

如果它擴展到很長的文件列表,最後一點可能會給您帶來麻煩。在這種情況下,請嘗試使用findand-exec為您完成這項工作。


從手冊頁gzip(1)

gunzip takes a list of files on its command line and  replaces  each  file
whose  name  ends  with  .gz, -gz, .z, -z, or _z (ignoring case) and which
begins with the correct magic number with an uncompressed file without the
original  extension.

關於“原名”的說明

gzip 可以儲存和恢復壓縮時使用的文件名。即使您重命名壓縮文件,您也會驚訝地發現它又恢復到原來的名稱。

從 gzip 手冊頁:

預設情況下,gzip 會在壓縮文件中保留原始文件名和時間戳。這些在使用-N選項解壓縮文件時使用。這在壓縮文件名被截斷或文件傳輸後未保留時間戳時很有用。

這些儲存在元數據中的文件名也可以通過以下方式查看file

$ echo "foo" > myfile_orig
$ gzip myfile_orig 
$ mv myfile_orig.gz myfile_new.gz 
$ file myfile_new.gz 
myfile_new.gz: gzip compressed data, was "myfile_orig", last modified: Mon Aug  5 08:46:39 2019, from Unix
$ gunzip myfile_new.gz        # gunzip without -N
$ ls myfile_*
myfile_new

$ rm myfile_*
$ echo "foo" > myfile_orig
$ gzip myfile_orig
$ mv myfile_orig.gz myfile_new.gz 
# gunzip with -N
$ gunzip -N myfile_new.gz     # gunzip with -N
$ ls myfile_*
myfile_orig

引用自:https://unix.stackexchange.com/questions/56421