Answers:
我能找到的最接近的--transform
选项。我不确定,但是我猜这是仅GNU的标志:
--transform, --xform EXPRESSION
use sed replace EXPRESSION to transform file names
使用它,您可以传递sed
替换命令并将更改/
为/abc
:
tar cf root.tgz --transform 's/^\//\/abc/' /
/
创建归档文件/abc
时,它仍然会打印路径,但是在提取归档文件时,它们会变为路径。
如果您tar
没有--transform
选择的另一种方法是,使/abc
符号链接指向/
然后将其tar:
$ ln -s / /abc
$ tar chf root.tgz /abc
这-h
是必不可少的,因为这是tar
要遵循的链接:
-h, --dereference
follow symlinks; archive and dump the files they point to
这将具有设置/abc
为顶级目录的作用。
这是我的操作方法,可在任何位置(不仅仅是/)进行涂抹:
tar --transform 's|^|/abc/|' -zcvf /path/to/dest.tgz *
它只是将a附加/abc/
到每个路径的开头。
tar: Removing leading / from member names
。使用's|^|abc/|'
对我来说效果很好。