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,
cd
touser
和tar
up .project
.. 您可以像以前一样在 中指定 tar 文件的目标位置/var/...
。
或者有什么原因让您不想/不能这样cd
做user
?