如何解压缩.gz所有档案,而不删除指定的文件夹?我试过了:gunzip *.gz /folder
.gz
gunzip *.gz /folder
cld4siwp1#
您可以简单地使用man中指定的-k选项。
-k --keep Keep (don't delete) input files during compression or decompression.
例如,如果使用以下命令
gunzip -k my_file.gz
压缩或解压缩后,不会删除my_file. gz。
rkttyhzu2#
可以通过使用gzip--stdout选项的一些bash脚本来完成,并使用bash替换计算未压缩的名称:
gzip
--stdout
bash
for i in *.gz do echo unzipping $i to /folder/${i/.gz} gunzip --stdout "$i" > "/folder/${i/.gz}" done
当前实现失败,文件名包含空格
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/替换为点(.)。
/source/dir/
*.gz
$0
"/folder/${0%.gz}"
"/folder/"
${0%.gz}
{}
.
aiazj4mn4#
使用gzip解压缩到stdout并将其通过管道传输到所需的文件(因为-k选项对我也不起作用
gzip -dc somefile.gz > outputfile.txt
4条答案
按热度按时间cld4siwp1#
您可以简单地使用man中指定的-k选项。
例如,如果使用以下命令
压缩或解压缩后,不会删除my_file. gz。
rkttyhzu2#
可以通过使用
gzip
--stdout
选项的一些bash
脚本来完成,并使用bash替换计算未压缩的名称:当前实现失败,文件名包含空格
bq3bfh9z3#
此命令查找
/source/dir/
目录中的所有*.gz
文件,并对每个文件执行bash命令。($0
)到标准输出,并将结果重定向到"/folder/${0%.gz}"
。后者是"/folder/"
字符串与不带.gz
扩展名的文件名连接。${0%.gz}
表达式从字符串后面(路径)删除.gz
的最短匹配。{}
序列被替换为下一个gzip文件的路径,并作为第一个参数($0
)传递给bash命令。如果源目录是当前目录,则将
/source/dir/
替换为点(.
)。aiazj4mn4#
使用gzip解压缩到stdout并将其通过管道传输到所需的文件(因为-k选项对我也不起作用