linux 如何不删除gunzip?

pftdvrlh  于 2022-12-18  发布在  Linux
关注(0)|答案(4)|浏览(186)

如何解压缩.gz所有档案,而不删除指定的文件夹?
我试过了:gunzip *.gz /folder

cld4siwp

cld4siwp1#

您可以简单地使用man中指定的-k选项。

-k --keep
        Keep (don't delete) input files during compression or decompression.

例如,如果使用以下命令

gunzip -k my_file.gz

压缩或解压缩后,不会删除my_file. gz。

rkttyhzu

rkttyhzu2#

可以通过使用gzip--stdout选项的一些bash脚本来完成,并使用bash替换计算未压缩的名称:

for i in *.gz
do
   echo unzipping $i to /folder/${i/.gz}
   gunzip --stdout "$i" > "/folder/${i/.gz}"
done

当前实现失败,文件名包含空格

bq3bfh9z

bq3bfh9z3#

find /source/dir/ -type f -name '*.gz' \
  -exec bash -c 'gunzip -c "$0" > "/folder/${0%.gz}"' {} \;

此命令查找/source/dir/目录中的所有*.gz文件,并对每个文件执行bash命令。($0)到标准输出,并将结果重定向到"/folder/${0%.gz}"。后者是"/folder/"字符串与不带.gz扩展名的文件名连接。${0%.gz}表达式从字符串后面(路径)删除.gz的最短匹配。
{}序列被替换为下一个gzip文件的路径,并作为第一个参数($0)传递给bash命令。
如果源目录是当前目录,则将/source/dir/替换为点(.)。

aiazj4mn

aiazj4mn4#

使用gzip解压缩到stdout并将其通过管道传输到所需的文件(因为-k选项对我也不起作用

gzip -dc somefile.gz > outputfile.txt

相关问题