什么是以下命令的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.gz只file.tar需要解压缩,然后你需要解压缩tar xvf file.tar.该z的选项tar是一个简单的快捷键做用gzip解压缩与解压的文件一起.
如果您只想将.gz文件解压缩(而不是解压缩.tar.gz文件)到另一个目录,只需将其解压缩即可.例如gzip -dc < file.gz > /somewhere/file.
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,语法会有所不同(如果可能的话)。
为了在不进行GZIP压缩的情况下保留.tar文件,我使用了这样的一行,并取得了良好的效果:
cat file_to_uncompress.tar.gz | gzip -d > /destination_directory/packet_uncompressed.tar
Run Code Online (Sandbox Code Playgroud)
这是在某些情况下管理数据包的有用且直观的形式。