Compression

tar:如何創建具有任意前導目錄的 tar 文件,而無需“cd”到父目錄

  • January 15, 2021

假設我有一個文件目錄

/home/user1/dir1

我想創建一個只有“dir1”作為前導目錄的 tar:

/dir1/file1
/dir1/file2

我知道我可以先 cd 到目錄

cd /home/user1/
tar czvf dir1.tar.gz dir1

但是在編寫腳本時,從一個目錄跳轉到另一個目錄並不總是有利的。我想知道有沒有辦法在不更改目前目錄的情況下使用絕對路徑?

我知道我總是可以在 INSIDE 中創建一個帶有絕對路徑的 tar 文件並使用

--strip-components 

提取時,但有時額外的路徑名是您不想與 tar 文件一起分發的額外私人資訊。

謝謝!

tar -C 改變目錄

tar -C /home/user1/ -cvzf dir1.tar.gz dir1

順便說一句,用於跟踪更改目錄的便捷工具…使用 pushd 和 popd。

pushd .
cd /home/user1
tar cvfz dir1.tar.gz
popd

使用 gnu tar,您可以使用與實際不同的基本目錄創建存檔:

tar -c --transform 's,^\.,mybasedir,' .

只需根據您的需要調整 sed 表達式即可。

引用自:https://serverfault.com/questions/86478