異なる名前のtarファイルを使用する

異なる名前のtarファイルを使用する

私の環境を展開可能にするために、時には便利なファイルとスクリプトを圧縮します。

tar -czvf env.tgz .vimrc .vim/ bin/lsl bin/s

ここに追加したいのですが、.bashrcその中に機密情報があるので、.bashrc-deployその情報を保持してから新しいサーバーにタールボールがある場合は、単に名前を変更できます。しかし、私はタールボールが.bashrc最初から正しい名前を持つことを望んでいるので、名前を変更する必要はありません。私は一時的にファイル名を変更し、次のようにタルボールを作成するスクリプトを書くことを検討しました。

#!/bin/bash
mv .bashrc .bashrc-real
mv .bashrc-deploy .bashrc
tar -czvf env.tgz .bashrc .vimrc .vim/ bin/lsl bin/s
mv .bashrc .bashrc-deploy
mv .bashrc-real .bashrc

しかし、名前をタールボールに保存するtar内部方法はありますか?someFileanotherName

ベストアンサー1

paxtar標準(POSIX)コマンドを使用してアーカイブを作成)を使用してオプションをbsdtar確認します。-s

pax -s '/\.bashrc-deploy/.bashrc/' -w -x ustar . | gzip > a.tar.gz

bsdtar -s '/\.bashrc-deploy/.bashrc/' -zcf a.tar.gz .

ただし、上記のコードは、.bashrc-deploy文字列を.bashrcアーカイブに追加したいメンバーのファイルパスに置き換えることに注意してください。./.bashrc-deploy現在のディレクトリにあるものだけを置き換えるには、次のように作成する必要があります。

pax -s '|^\./\.bashrc-deploy$|./.bashrc|' -w -x ustar .

(POSIX pax仕様を読んでみましたが、すべてのpax実装がこのように動作することを保証することはできません。実装は1つだけなので、bsdtarでも機能する必要があります。)

おすすめ記事