私がファイルのディレクトリを持っているとしましょう
/home/user1/dir1
そして、主なディレクトリとして「dir1」のみを使用してtarを作成します。
/dir1/file1
/dir1/file2
私は最初にディレクトリにcdできることを知っています
cd /home/user1/
tar czvf dir1.tar.gz dir1
しかし、スクリプトを書くとき、ディレクトリからディレクトリへジャンプすることは必ずしも好ましいことではありません。現在のディレクトリを変更せずに絶対パスでそれを行う方法はあるのでしょうか?
私は常に絶対パスを含むtarファイルを作成して使用できることを知っています
--strip-components
抽出時、ただし追加のパス名は、tarファイルと一緒に配布したくない追加のプライベート情報です。
ありがとう!
tar -Cはディレクトリを変更します
tar -C /home/user1/ -cvzf dir1.tar.gz dir1
ところで、ディレクトリの変更を追跡するのに便利なものです... pushdとpopdを使用してください。
pushd .
cd /home/user1
tar cvfz dir1.tar.gz
popd
Gnu tarを使用すると、実際のベースディレクトリとは異なるベースディレクトリでアーカイブを作成できます。
tar -c --transform 's,^\.,mybasedir,' .
Sedの表現をニーズに合わせてください。
OK、私もそれを知った
tar -czvf file1.tar.gz /home/user1/dir1/../dir1
また、私が望む方法で動作しました。
tar -C /home/user1/dir -c .