回答:
のGNUバージョンはオプション(およびそのエイリアス)をtar
サポートし--transform
ます。--xform
このように使用できます
tar --transform "s/^$MYPATH/$VERSION/" -cf archive.tar.bz2 "$MYPATH"
たとえば、このディレクトリツリーを考えます
foo
└── foo.txt
コマンド
tar --transform "s/^foo/bar/" -cf foo.tar.bz2 foo
のようなアーカイブを作成します
$ tar -tf foo.tar.bz2
bar/
bar/foo.txt
flags=r;
記載されているように、プリペンディングにより問題が解決されます。
s/^a\//b\//
、他のすべてのファイルが下にある間、tar -t
まだ表示a/
されb/
ます。これは危険だと思いますが、tarファイル内のディレクトリではない同じプレフィックスを持つ他のファイルから保護する必要はありません。したがって、末尾のスラッシュは問題ありa/
ません。変換される場合を処理する最良の方法を知っていてもaa/
、それがルートノードの兄弟であるかどうかは気にしません。
tar cjf archive.tar.bz2 $MYPATH
?