0 我在一个目录中有几个txt.gz文件,我想一次解压缩到一堆.txt文件而不删除原件。但我不希望它们在标准输出中 - 就像使用-c选项一样。相反,我希望它们作为同一目录中的文件,只需使用file.txt类型名称(可能使用gunzip -c file.txt.gz> file.txt)。可能有人有什么建议吗?谢谢!! linux gunzip — Paulina source
3 使用简单的for循环: for i in *.txt.gz; do zcat "$i" > "${i%.*}"; done zcat 相当于 gunzip -c,但更短。 变量 $i 取名所有 *.txt.gz 当前目录中的文件(一个接一个)。 ${i%.*} 剥离扩展( .gz )从文件的名称。 注意 :这是bash语法。 — mpy source 1 好吧,这不会恢复已保存的mtime。如果你想要它,而是分配一个临时目录,然后复制 .txt.gz 那里然后解压缩 gzip -d 然后移动 .txt 回来,重复每一个 .txt.gz 然后在完成后删除临时目录。 — Dan D. 2 @DanD。:使用 touch -r 更简单。 — Dennis
2 您可以使用 的p7zip 而不是gunzip,它将保留您的原始存档文件。 7za e original.txt.gz 要解压缩多个文件,请参阅@ mpy的答案。 更新 根据@Dennis的评论,用双引号包装通配符,p7zip将提取所有 .txt.gz 文件。 7za e "*.txt.gz" — LiuYan 刘研 source 1 如果您已经在使用7-Zip,那就行了 7za e "*.txt.gz"。 — Dennis @Dennis,很高兴知道。 — LiuYan 刘研
.txt.gz
那里然后解压缩gzip -d
然后移动.txt
回来,重复每一个.txt.gz
然后在完成后删除临时目录。