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

Use*_*007 8 tar directory

tar cvf /var/lib/backup/sample.tar /home/user/.project
Run Code Online (Sandbox Code Playgroud)

但是,当我提取时,我也会得到它的父母

/backup/
  - /home/
     - /user/
        - .project/
Run Code Online (Sandbox Code Playgroud)

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

我想以编程方式执行此操作,因此将当前工作目录更改为/home/user/实际上并不是一个选项。有可能这样做吗?

Kev*_*vin 18

您可以使用该-C选项/home/user在 tarring 之前切换到目录,也可以--strip-components 2在提取时使用。

tar cvfC /var/lib/backup/sample.tar /home/user .project
#                              Note the space ^
Run Code Online (Sandbox Code Playgroud)
tar cvf /var/lib/backup/sample.tar /home/user/.project
tar Cxf /backup /var/lib/backup/sample.tar --strip-components 2
Run Code Online (Sandbox Code Playgroud)

  • 我无法让它像这样工作。根据阅读 https://www.gnu.org/software/tar/manual/tar.html#SEC118 我用以下表格成功了: tar cvf /var/lib/backup/sample.tar -C /home/user .project (2认同)