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
?