将gzip文件解压缩到特定目录

gr6*_*r68 17 compression gzip

什么是以下命令的gzip等价物:

tar xvzf /usr/local/file/file/file.tar.gz -C /usr/local/extract_here
Run Code Online (Sandbox Code Playgroud)

我在尝试

gzip -d /usr/local/file/file/file.tar.gz -C /usr/local/extract_here
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我怎么用gzip做到这一点?

Mar*_*ler 31

鉴于您有一个.tar.gz文件,使用-C选项尝试的第一种方法可以正常工作:

tar xvzf /dir/to/file.tar.gz -C /dir/to/output/

tar调用gzip进行解压缩,然后从tar流中提取文件. gzip只能解压缩,所以gunzip file.tar.gzfile.tar需要解压缩,然后你需要解压缩tar xvf file.tar.该z的选项tar是一个简单的快捷键做用gzip解压缩与解压的文件一起.

如果您只想将.gz文件解压缩(而不是解压缩.tar.gz文件)到另一个目录,只需将其解压缩即可.例如gzip -dc < file.gz > /somewhere/file.


Kos*_*ger 8

cd /mydir_with_gz_files
for i in *gz
do
gzip -dkc < $i > /my_destination_dir/${i%%.gz}
done
Run Code Online (Sandbox Code Playgroud)

此语法用于将包含的多个 文件提取到不同的目录中。*.gz/mydir_with_gz_files

1)-k此处使用选项,否则 gzip 将不会保留存档本身。好记!

2)我还想强调对于那些给出正确答案的人来说似乎显而易见的事情,但对我和问题的作者来说却并非如此:gzip不会将文件提取到不同的目录中,但会期望将生成的未压缩文件的名称指定为出色地。

这是通过$i > ${i%%.gz} bash 参数替换file.gz来实现的,该替换删除诸如“ ”之类的名称的“ .gz”后缀。对于其他 shell,语法会有所不同(如果可能的话)。


Pab*_*una 5

为了在不进行GZIP压缩的情况下保留.tar文件,我使用了这样的一行,并取得了良好的效果:

cat  file_to_uncompress.tar.gz | gzip -d > /destination_directory/packet_uncompressed.tar
Run Code Online (Sandbox Code Playgroud)

这是在某些情况下管理数据包的有用且直观的形式。