【问题标题】:linux shell tar unwanted extra directorieslinux shell tar 不需要的额外目录
【发布时间】:2013-10-16 14:23:55
【问题描述】:

我有以下问题: 我有目录 a/b/c 和 c 里面有许多文本文件。 我想在目录 a/mydir 中创建一个 .tar.gz 文件,其中包含 c 目录,然后将其解压缩到同一目录以创建 a/mydir/c (其中包含所有文件)

我在目录 a 并运行:(shell)

~:$ tar -czf mydir/output.tar.gz b/c

~:$ tar -zxf mydir/output.tar.gz -c mydir

但结果是目录 a/mydir/b/c (里面有文件) 问题是我不希望目录 b 在中间,只需要 c 及其所有内容

【问题讨论】:

  • mv b/c . ; rm -r b 有什么问题?
  • 正确的 tar 文件是另一个程序的输入

标签: linux shell tar


【解决方案1】:

这对我有用。创建数据

mkdir -p a/b/c
echo 42 >  a/b/c/file.dat

存档

tar zc -f c.tar.gz  -C a/b c

【讨论】:

    【解决方案2】:
    • 创建了 a/b/c 目录,请从目录中尝试此命令。
    • 所以b/c/files下的文件都做了out.tar.gz
    • 在“b”下创建新目录“mydir”,并提取文件。
    • out.tar.gz 从“a”中删除。

      # tar -cvzf out.tar.gz b/c/* ; mkdir -p b/mydir ; tar -xvzf out.tar.gz -C b/mydir/ ; rm -rf out.tar.gz

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 2012-01-27
      • 1970-01-01
      • 2019-04-02
      • 2016-02-20
      • 2017-01-29
      • 2016-10-24
      相关资源
      最近更新 更多