linux - 解压缩具有有限目录层次结构的文件

标签 linux tar

我已经在终端中创建了一个 tar 文件。假设我目前在目录 test7 中。我正在另一个目录 (test8) 内的文件的当前目录中创建一个 tar。

tar -czvf example.tgz ../test8/a/b

输出:

example.tgz

现在,我使用以下命令解压此文件:

tar -xzvf example.tgz

我得到了结果并生成了一个名为 test8 的目录。

$) cd test8
$) ls
-> a 
$) cd a
$) ls
-> b

现在我可以进入目录 b 并查看我的文件。

我希望输出只是目录 a 并且 b 将出现在其中,即

我想要的解压后的输出应该是这个层次结构:a/b

但不是:test8/a/b

谁能帮我解决这个问题?

我已经浏览过 tar 的手册页,但无法从中获得太多帮助。

最佳答案

您可以在压缩时使用 -cflags。它在 tar 的手册页中提到。

-C, --directory=DIR
change to directory DIR

因此,您可以按如下方式使用它:

tar -czvf example.tgz -C  ../test8  a/b

现在,如果您解压 example.tgz。它将具有 a/b 的层次结构。

希望对您有所帮助。

关于linux - 解压缩具有有限目录层次结构的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57391152/

相关文章:

linux - tar 命令不生成 .tar.gz 文件

python - 如何计算 tar 文件中每个文件的 shasum

c++ - 跨线程共享读资源

c++ - 如何在 gdb/TotalView 中为复杂类型编写 native C++ 调试器可视化工具

c++ - 我怎样才能阻止 gcc 在较新的 ARM cpu 上发出 swap{b}?

linux - 如何查找特定文件类型并对其进行压缩?

linux - 如何从 tar 文件内的 csv 文件中提取前几行而不在 Linux 中提取它?

linux - 可以访问phpmyadmin但无法登录(未找到)

linux - QEMU 错误且权限被拒绝

c# - 如何在 C# 中创建 tar.gz 文件