tar:如何使用不带“ cd”到父目录的任意前导目录创建tar文件


23

说我有一个文件目录

/home/user1/dir1

我想创建一个仅以“ dir1”作为主要目录的tar:

/dir1/file1
/dir1/file2

我知道我可以先CD到目录

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

但是在编写脚本时,从目录跳转到目录并不总是有利的。我想知道是否有一种方法可以使用绝对路径而不更改当前目录?

我知道我总是可以使用绝对路径INSIDE创建一个tar文件并使用

--strip-components 

提取时,但有时多余的路径名是多余的私人信息,您不想与tar文件一起分发。

谢谢!

Answers:


24

tar -C更改目录

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

顺便说一句,方便跟踪目录更改...使用推和弹出。

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

1
谢谢。我不知道在使用其他选项之前必须先使用“ -C”选项...我之前尝试过“ tar -cvzf dir1.tar.gz dir1 -C / home / user1 /”,但是它不起作用。

1
不起作用:tar:dir:无法统计:没有这样的文件或目录(假设dir1在/ home / user1 /下)
Tribbloid


5

好,我也发现

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

也按照我想要的方式工作。


尽管像“ *”这样的通配符不起作用
Curtis Yallop

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.