如何创建一个不会扩展到子文件夹的 tar 存档?

3
我不想创建一个没有内部目录结构的“平”的tar包。但我希望顶层文件是“松散”的,而不是镜像它们最初所在的目录结构。
请注意:
+ archives
|
+ data
    |
    + site
        |
        + file1.html
        |
        + subdirectory
               |
               + etc...

如果我进入archives,并在其中创建tar文件,例如:tar -czf archive.tgz ../data/site/*,当我以后解压缩tar文件时,它将重新创建data/site/...,然后我必须使用mv data/site/* ../some/other/dir命令。我想要的是只需使用tar -xzf archive.tgz -C ../some/other/dir,然后例如file1.html就直接出现在../some/other/dir中。
2个回答

4

不要使用 cd 命令进入 archives 目录并在那里使用带有 tar 文件内容路径的 tar 命令,而应该直接进入文件内容所在的目录,并指定正在创建的 tar 文件的路径:

cd data/site
tar -czf ../../archives/archive.tgz *

1
您也可以使用选项tar -czf archive.tgz --directory=data/site/ .而无需进入文件夹。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接