压缩目录中的所有.gz文件


24

我有一个包含大量.txt.gz文件的目录(名称不遵循特定的模式。)

gunzip他们来说最简单的方法是什么?我想保留原来的名称,让他们从去whatevz.txt.gzwhatevz.txt

Answers:


42

这样呢

$ gunzip *.txt.gz

gunzip会创建一个不带.gz后缀的压缩文件,并默认删除原始文件(有关详细信息,请参见下文)。*.txt.gz将由您的Shell扩展到所有匹配的文件。

如果扩展到很长的文件列表,这最后一点可能会给您带来麻烦。在这种情况下,请尝试使用find-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

0

如果要保留.gz文件,可以使用以下命令: $ gunzip -c inputfile.gz >outputfile


0

使用此命令将当前目录中的所有文件都用gunzip(解压缩gz文件)并保留原始文件:

gunzip -k *.gz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.