在将文件添加到tar时如何指定任意引导路径?


10

是否可以在tar归档文件中设置任意路径来放置原始文件系统上可能不存在的文件?这与-C开关的不同之处在于,我可能想要备份/ etc /,但是将其作为/ configurations / etc /放置在存档中。


1
IIRC -s选项可以做到这一点,但现在没有时间写出完整的答案。
克里斯S

@ChrisS在GNU tar 1.28(Ubuntu 16.04)中-s是该选项的缩写--preserve-order,因此是题外话。了这里
斯特凡纳·古里科

Answers:


7

在GNU tar中,--transform--xform)是进行文件名转换的选项。文档和示例可以在这里找到


如果我在系统上而不是在linux.die.net上阅读man tar,我会看到的!感谢您的回答,正则表达式甚至比我期望的要好。
andyortlieb 2011年

2
@andyorlieb,感谢您对“ --xform”的输入无法在您的系统上使用,但请不要更改人们回答的内容,除非您有明确的参考来备份它。谢谢。
克里斯S

-s在OSX的tar上看起来很相似
gman

提到的文档--transform=expression提取时花了很多时间来解释,但没有提到添加时间(这是提出的实际问题)。
斯特凡纳·古里科

3

在BSD tar中,-s pattern是进行名称转换的选项。引用freebsd.org文档

-s  pattern
     Modify file or archive member names according to pattern.  The
     pattern has the format /old/new/[ghHprRsS] where old is a basic
     regular expression, new is the replacement string of the matched
     part, and the optional trailing letters modify how the replace-
     ment is handled.  If old is not matched, the pattern is skipped.
     Within new, ~ is substituted with the match, \1 to \9 with the
     content of the corresponding captured group.  The optional trail-
     ing g specifies that matching should continue after the matched
     part and stop on the first unmatched pattern.  The optional
     trailing s specifies that the pattern applies to the value of
     symbolic links.  The optional trailing p specifies that after a
     successful substitution the original path name and the new path
     name should be printed to standard error.  Optional trailing H,
     R, or S characters suppress substitutions for hardlink targets,
     regular filenames, or symlink targets, respectively.  Optional
     trailing h, r, or s characters enable substitutions for hardlink
     targets, regular filenames, or symlink targets, respectively.
     The default is hrs which applies substitutions to all names.  In
     particular, it is never necessary to specify h, r, or s.

1
我知道tar说它是专门关于GNU tar的,而Stéphane评论说基本上非gnu的tar是不合时宜的。但是,由于没有 BSD tar的标签,我认为这是一个适当的答案。
Patrick M
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.