解压具有有限层次结构的文件

解压具有有限层次结构的文件

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

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

输出:

example.tgz

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

tar -xzvf example.tgz

我得到了结果和一个名为的目录测试8被生产。

$) cd test8

$) ls
-> a

$) cd a

$) ls
-> b

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

我希望输出仅是目录A并且里面b将会出现,即我想要的解压后的输出应该是这个层次结构: a/b 但不是:test8/a/b

有人能帮我解决这个问题吗?我浏览过 tar 的手册页,但没有得到太多帮助。

答案1

您可以使用该-C选项有效地更改到目标目录

例如,而不是

$ tar cvf example.tar ../Apple/Banana/Papaya
tar: Removing leading `../' from member names
../Apple/Banana/Papaya/
../Apple/Banana/Papaya/Papaya.md

使用

$ tar cvf example.tar -C ../Apple Banana/Papaya
Banana/Papaya/
Banana/Papaya/Papaya.md

或者,您可以使用以下选项在提取时删除主要目录--strip-components

tar --strip-components=1 -xzvf example.tgz

相关内容