tar:如何创build一个任意的主目录w / o的cd文件到父目录的tar文件

说我有一个文件目录在

/home/user1/dir1 

我想创build一个只有“dir1”作为主目录的tar:

 /dir1/file1 /dir1/file2 

我知道我可以先cd到目录

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

但是编写脚本时,从目录跳转到目录并不总是有利的。 我想知道有没有办法做到绝对path而不改变当前目录?

我知道我总是可以创build一个绝对pathINSIDE和使用的tar文件

 --strip-components 

当提取时,但有时额外的path名是额外的私人信息,你不想与你的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,你可以创build一个与实际不同的基本目录的存档:

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

只需调整sedexpression式以满足您的需求。

好的,我也发现了

 tar -czvf file1.tar.gz /home/user1/dir1/../dir1 

也以我想要的方式工作。

 tar -C /home/user1/dir -c .