我想要 tar X 目录,不包括其父目录

我想要 tar X 目录,不包括其父目录
tar cvf /var/lib/backup/sample.tar /home/user/.project

然而,当我提取时,我也得到了它的父母

/backup/
  - /home/
     - /user/
        - .project/

这个 tar 命令之所以能完成它的工作,是因为它在其父级中不包含任何其他内容(user例如,下面的其他文件夹)。

我想以编程方式执行此操作,因此将当前工作目录更改为/home/user/并不是真正的选择。可以这样做吗?

答案1

您可以使用该-C选项在压缩前更改/home/user目录或--strip-components 2在提取时使用。

tar cvfC /var/lib/backup/sample.tar /home/user .project
#                              Note the space ^
tar cvf /var/lib/backup/sample.tar /home/user/.project
tar Cxf /backup /var/lib/backup/sample.tar --strip-components 2

答案2

我认为如果您cd进入要创建tar文件的顶级目录,则不应该遇到此问题。 IE,

cdtousertarup .project.. 您可以像以前一样在 中指定 tar 文件的目标位置/var/...

或者有什么原因让您不想/不能这样cduser

相关内容