如何使用gunzip批量解压文件并保留原文件?

如何使用gunzip批量解压文件并保留原文件?

我在一个目录中有几个 txt.gz 文件,我想将它们一次性解压为一堆 .txt 文件,而不删除原始文件。但我不希望它们出现在标准输出中 - 使用 -c 选项即可实现。相反,我希望它们作为同一目录中的文件,只是使用 file.txt 类型的名称(可以使用 gunzip -c file.txt.gz > file.txt 完成)。有人有什么建议吗?谢谢!!

答案1

使用一个简单的 for 循环:

 for i in *.txt.gz; do zcat "$i" > "${i%.*}"; done

zcat相当于gunzip -c,但是更短。

该变量$i获取当前目录中所有文件的名称*.txt.gz(一个接一个)。从文件名称中${i%.*}去除扩展名( )。.gz

笔记:这是 bash 语法。

答案2

您可以使用p7zip它将保留您的原始存档文件,而不是 gunzip。

7za e original.txt.gz

要解压缩多个文件,请参阅@mpy 的回答。


更新

按照@Dennis 的评论,用双引号括起通配符,p7zip 将提取所有.txt.gz文件。

7za e "*.txt.gz"

相关内容