【问题标题】:Compress files and directories压缩文件和目录
【发布时间】:2012-04-14 10:52:28
【问题描述】:

我需要压缩某些文件和一个目录。假设它们被放置在 /root/project 中。 问题是我需要以具有特定名称(name.tar.gz)和“根”目录的gzip-tarball格式压缩它们,我的意思是,只要我打开.tar.gz所有文件和我要压缩的目录都在那里。

我尝试过使用以下命令:

tar czfv name.tar.gz /root/project
tar czfv name.tar.gz /root/project/*

但随后整个子结构被压缩(我的意思是,当我打开 .tar.gz 时,我必须浏览目录 root/project.. 我不需要,我需要文件在我打开时立即“/”我想)

我希望我已经解释了自己...原谅我的英语不好,提前感谢!

【问题讨论】:

    标签: linux compression gzip tar


    【解决方案1】:

    如果您使用的是 GNU tar,您可以使用以下命令:

    tar -C /root/project -zcvf /root/name.tar.gz .

    -C 导致 tar 在将 . 目录添加到存档之前更改为 /root/project 目录。确保存档的目标目录不在您要存档的目录 (/root/project) 中。此示例在 /root 中创建存档。

    【讨论】:

      【解决方案2】:

      如果您希望 tarball 中的文件名都具有 project/ 前缀(这通常是可取的),请这样做

      (cd /root && tar czvf `pwd`/name.tar.gz project)
      

      如果你根本不想要前缀,那就做

      (cd /root/project && tar czvf `pwd`/name.tar.gz .)
      

      pwd 在执行cd 之前捕获当前工作目录;括号在子shell 中执行命令,因此您当前的shell 保持在同一目录中。)

      【讨论】:

      • 第二个选择就是我想要的!谢谢!唯一的问题是,当我压缩时,.tar.gz 也会与其他文件一起压缩! (一种递归的东西:S)
      • @Lucia:我不明白你的意思。 z 选项到 tar 会导致整个文件被压缩。
      • 当我打开新的 name.tar.gz 文件时,里面会出现所有文件压缩另一个 name.tar.gz 与 0Bytes.. :我不知道为什么。
      • 可能是因为您不小心在目录中创建了该文件,并且之前尝试对其进行 tar。
      • 呵呵,我也这么认为..但我删除文件并再试一次,没有... :(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 2020-06-25
      相关资源
      最近更新 更多