gpt4 book ai didi

linux - 如何从绝对路径和包文件创建 tar 存档,就好像它们是相对的一样?

转载 作者:太空狗 更新时间:2023-10-29 11:41:15 25 4
gpt4 key购买 nike

在 Linux 上,我试图从不同的目录创建一个 .tar.gz 存档,也就是说,我有一个将从不同目录执行的 bash 脚本。该脚本将打包文件夹,我将给出文件夹的绝对目录 /home/user1/Documents/folder1 但是当它打包 tar 文件时,它将整个绝对目录放入存档中,而我只想要 folder1 中的相关文件。

例如:

tar czf/home/user1/Documents/folder1.tar.gz/home/user1/Documents/folder1

这将创建一个存档,但第一个文件夹将在 home 中,然后在 user1 内部、文档内部和 folder1 内部,当然没有来自其他分支的其他子文件夹。

控制台也给出了这个错误:

tar: Removing leading `/' from member names

我希望它被打包,就好像我会从同一个文件夹执行命令一样,所以存档中的唯一文件夹应该是 folder1,并且在里面它有自己的子文件夹。

所以里面的存档应该看起来就像我从 folder1 所在的同一目录执行这段代码一样:

tar czf folder1.tar.gz folder1

最佳答案

您可以在执行任何操作之前使用-C 选项更改目录:

tar czf /home/user1/Documents/folder1.tar.gz -C /home/user1/Documents folder1

现在,您的存档内容将如下所示:

$ tar tf /home/user1/Documents/folder1.tar.gz 
folder1/
folder1/file1

顺便说一句,您收到的消息不是错误。它是 tar 告诉您它使存档中的路径相对,以避免覆盖文件,这在使用绝对路径解压缩存档时很容易发生。您可以使用 -P 关闭前导斜线删除,但您通常不希望这样做。

关于linux - 如何从绝对路径和包文件创建 tar 存档,就好像它们是相对的一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48604954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com