tar コマンドでパスを変更して展開したい

メモです。
(使っている Linux は Ubuntu 14.04.3 LTS です)

tar コマンドで展開するときに 格納されているパスがそのまま使えずに パスの一部を変更して展開したいときがあります。

[格納されているパス]
home/hogehoge/test1/xxxxxx

[展開したいパス]
/home/hogehoge/test2/xxxxxx

次のようにオプションと変更内容を指定することで、 パスを変更しながら展開することができます。

$tar xzvf xxxxx.tar.gz --transform='s/test1/test2/g'
File name transformations:

    --transform=EXPRESSION, --xform=EXPRESSION
                           use sed replace EXPRESSION to transform file
                           names

ディレクトリの「 / 」も変更したい場合は 次のように区切り文字を「 | 」などに変更しておくと良いと思います。

$tar xzvf xxxxx.tar.gz --transform='s|hogehoge/test1|hugahuga/test2|g'

Google サイト内検索

Amazonアソシエイト