我想将给定目录中的所有内容放入存档中,同时保存整个目录布局,因此需要高级目录名称。
我运行以下命令:
tar --create --gzip --recursion --file=/home/user/test_backup.tgz --directory=/home/user/opt .
然而,这仅保存下面的目录布局opt
。
dir1
dir1/file
file1
file2
据我从手册中了解到,我应该使用--absolute-names
or -P
,但是当我将它们添加到上面的命令时,它们都不起作用。
tar --absolute-names --create --gzip --recursion --file=/home/user/test_backup.tgz --directory=/home/user/opt .
可能是什么问题呢?
存档中所需的目录布局应该是:
/home/user/opt/dir1
/home/user/opt/dir1/file
/home/user/opt/file1
/home/user/opt/file2
答案1
当您使用时,--directory FOO .
您会被告知tar
切换到 FOO 目录并从那里开始归档。
如果您想要完整路径名,那么您应该将它们指定为模式。
例如
tar -czf /home/user/test_backup.tgz /home/user/opt
然而,这会剥夺主角/
的能力,所以你需要告诉tar
不要这样做:
tar --absolute-names -czf /home/user/test_backup.tgz /home/user/opt
答案2
$ tar -P -cvzf archive.tgz /path/to/dir
这将创建一个包含 内容的存档,/path/to/dir
并具有以 开头的完整路径/path/to/dir
。
如果您希望保留路径中的前导,您还必须-P
在从存档中提取文件时使用。/