別のディレクトリにtarアーカイブを作成する方法は?

別のディレクトリにtarアーカイブを作成する方法は?

現在のディレクトリ以外のディレクトリにtarアーカイブを作成したいと思います。

私は次のコマンドを試しました。

tar czf file.tar.gz file1 -C /var/www/

ただし、現在のディレクトリにアーカイブが作成されます。なぜ?

答え1

特別でない場合は簡単な方法必要-CTellを使用してtar別のディレクトリに変更するには、コマンドラインからアーカイブのフルパスを指定するだけです。その後、目的のディレクトリのアーカイブに必要なディレクトリ構造を作成できます。

以下はアーカイブを作成し、/var/www/file.tar.gzアーカイブ内のパス情報なしで現在のディレクトリ(何が起こるか)からそのアーカイブにドロップします。file1

tar czf /var/www/file.tar.gz file1

もちろん、パス(アーカイブ、コンポーネントファイル、またはその両方)は相対的でもあります。にfile1あり、にアーカイブを作成する場合は、次の方法を使用できます。/tmp/var/spool/var/www

tar czf ../www/file1.tar.gz /tmp/file1

このテーマには何百万ものバリエーションがありますが、始めるにはこれが役立ちます。v実際に機能している様子を確認するには、このフラグを追加してくださいtar

答え2

私は次のようにすべきだと思います。
tar czf file.tar.gz -C /var/www/ file1

これは私にとって効果的です。ディレクトリを変更してからファイルを選択するように求められます。

答え3

圧縮データをストリーム(-)に変換し、目的の場所に簡単に名前を変更し、場所を指定します()。>(また、常にtar相対パス(./)を使用しているため、解凍時に処理するのが簡単です。)

tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar

答え4

完全に動作

cd /home; tar -czvf - /var/log/* > varlog.tar.gz

関連情報