【问题标题】:Decompress gzip file to specific directory [closed]将gzip文件解压缩到特定目录[关闭]
【发布时间】:2023-03-18 01:28:01
【问题描述】:

以下命令的 gzip 等效项是什么:

tar xvzf /usr/local/file/file/file.tar.gz -C /usr/local/extract_here

我在努力

gzip -d /usr/local/file/file/file.tar.gz -C /usr/local/extract_here

但它不起作用,我如何用 gzip 做到这一点?

【问题讨论】:

    标签: compression gzip


    【解决方案1】:
    cd /mydir_with_gz_files
    for i in *gz
    do
    gzip -dkc < $i > /my_destination_dir/${i%%.gz}
    done
    

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

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

    2) 我还想强调对那些给出正确答案的人来说似乎很明显但对我和问题的作者来说不是这样的事情:gzip 不会将文件提取到不同的目录中,但会期望得到的未压缩文件的名称也可以指定。

    这是通过$i &gt; ${i%%.gz} bash parameter substitution 来实现的,该parameter substitution 去除了“.gz”后缀的“file.gz”之类的名称。对于其他 shell,语法会有所不同(如果可能的话)。

    【讨论】:

      【解决方案2】:

      鉴于您有一个 .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.tartarz 选项只是使用 gzip 进行解压缩以及提取文件的快捷方式。

      如果您只想将 .gz 文件(而不是解压缩 .tar.gz 文件)解压缩到不同的目录,只需在该目录中使用管道即可。例如。 gzip -dc &lt; file.gz &gt; /somewhere/file.

      【讨论】:

      • 如果您想将问题转移到不同的 sx 平台,我相信有一个过程
      【解决方案3】:

      为了不使用 GZIP 压缩保存 .tar 文件,我使用了这样的一行,效果很好:

      cat  file_to_uncompress.tar.gz | gzip -d > /destination_directory/packet_uncompressed.tar
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-25
        • 2022-11-13
        • 1970-01-01
        • 1970-01-01
        • 2017-02-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-26
        相关资源
        最近更新 更多