Tar
創建不包括父目錄的 tar 存檔
我正在嘗試為我的腳本創建一個圖形程序。
在腳本中,我使用 tar 創建一個 tar 存檔。
從圖形程序中,我得到了要創建 tar 存檔的文件的全名。
tar -cvf temp.tar /home/username/dir1/dir2/selecteddir
我的 tar 存檔包括 home、username、dir1、dir2 和 selecteddir,而我希望 tar 創建僅包括 selecteddir 的存檔。
您可以使用 的
-C
選項tar
來完成此操作:tar -C /home/username/dir1/dir2 -cvf temp.tar selecteddir
從手冊頁
tar
:-C directory In c and r mode, this changes the directory before adding the following files. In x mode, change directories after opening the archive but before extracting entries from the archive.
您可以使用兩種方法來解決此問題。
在我看來,第一個更容易。只需
cd
進入要壓縮的目錄正上方的目錄即可。在這種情況下,它會是dir2
。$ cd /home/username/dir1/dir2/ $ tar -cvf temp.tar selecteddir
第二種方法是使用
--transform
帶有sed
表達式並針對文件名執行它的選項。注意:您必須/
在sed
表達式中轉義。$ tar -cvf temp.tar /home/username/dir1/dir2/selecteddir --transform='s/\/home\/username\/dir1\/dir2\///g'