tarに別の「トップレベル」名をどのように指定しますか?

tarに別の「トップレベル」名をどのように指定しますか?

tarルート(/)をtarアーカイブに/ abcとして表示したいと思います。

カスタムトップレベル名を指定するためのtarフラグはありますか?

ベストアンサー1

私が見つけることができる最も近いのは--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これは最上位ディレクトリに設定される効果があります。

おすすめ記事