現在のディレクトリ以外のディレクトリにtarアーカイブを作成したいと思います。
私は次のコマンドを試しました。
tar czf file.tar.gz file1 -C /var/www/
ただし、現在のディレクトリにアーカイブが作成されます。なぜ?
答え1
特別でない場合は簡単な方法必要-C
Tellを使用して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