我正在通过运行脚本来创建tar文件。脚本位于文件夹A中。我想将文件附加到tar中。输入文件和tar文件都在文件夹B中。当我将文件追加到现有tar中时,我给出了绝对文件路径,就像在另一个文件夹中一样,当将其追加到tar中时,应该将其重命名为我想要的名称。
例子:
/root/test/A
/root/myFolder/B/foo
/root/myFolder/B/archive.tar
在追加/root/myFolder/B/foo
时archive.tar
,应将其重命名为bar
。
我正在尝试此命令,但没有成功:
tar --transform='flags=r;s|/root/myFolder/B/foo|bar|' -cf archive.tar /root/myFolder/B/foo
它正以相同的名称添加文件/root/myFolder/B/foo
。
原因是tar
自动删除前导/
:
tar:从成员名称中删除前导“ /”
似乎在执行正则表达式之前将其删除。因此,您还需要删除/
模式中的前导:
tar --transform='flags=r;s|root/myFolder/B/foo|bar|' -cf archive.tar /root/myFolder/B/foo
或使用-P
开关
-P, --absolute-names
don't strip leading '/'s from file names
或者,您可以使用切换到files文件夹-C
,那么您无需替换路径:
tar --transform='flags=r;s|foo|bar|' -cf archive.tar -C /root/myFolder/B/ foo
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句