ファイルをtarに追加するときに、任意の先行パスをどのように指定できますか?


10

tarアーカイブ内に任意のパスを設定して、元のファイルシステムに存在しない可能性のあるファイルを配置することは可能ですか?これは-Cスイッチとは異なり、/ etc /のバックアップをとりたいが、アーカイブには/ configurations / etc /として配置します。


1
IIRCの-sオプションはそれを行いますが、現時点で完全な回答を書く時間はありません。
クリスS

@ChrisS in GNU tar 1.28(Ubuntu 16.04)オプション-sは省略されているため--preserve-order、トピック外です。ここに
ステフェイン・グーリッホン

回答:


7

GNU tarでは、--transform--xform)はファイル名を変換するオプションです。ドキュメントと例はここにあります


私がlinux.die.netではなく私のシステムでman tarを読んだら、これを見たでしょう!! 答えをありがとう、正規表現は私が期待していたよりもさらに優れています。
andyortlieb 2009

2
@andyorlieb、「-xform」の入力がシステムで機能しないことに感謝しますが、バックアップする明確なリファレンスがない限り、人々の回答の内容を変更しないでください。ありがとうございました。
クリスS

-sOSXの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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.