我有一个包含大量.txt.gz
文件的目录(其中名称不遵循特定模式。)
对他们来说最简单的方法是什么gunzip
?我想保留他们原来的名字,让他们whatevz.txt.gz
从whatevz.txt
答案1
就这个怎么样?
$ 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
答案2
使用此命令来gunzip(解压缩gz文件)当前目录中的所有文件并保留原始文件:
gunzip -k *.gz
答案3
我通过转到目录并使用gzip -d *.gz
.
答案4
如果您想保留该.gz
文件,可以使用以下命令:
$ gunzip -c inputfile.gz >outputfile