web-dev-qa-db-ja.com

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

現在のディレクトリではなく、別のディレクトリにtarアーカイブを作成したい。

私はこのコマンドを試しました:

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

しかし、現在のディレクトリにアーカイブを作成します。どうして?

41
Omid

特にneedを使用しない場合の簡単な方法は、-Cを使用して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

テーマには100万のバリエーションがありますが、これで開始できます。 vフラグを追加して、tarが実際に行うことを確認します。

51
a CVn

圧縮されたデータをストリーム(-)に変換し、選択した場所に簡単に名前を変更して検索(>)します(また、相対パス(./)を常にtarで圧縮しているので、解凍するときに扱いやすい)

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

私は、それはそうあるべきだと思います:
tar czf file.tar.gz -C /var/www/ file1

それは私にとってはうまくいきます。ディレクトリを変更し、ファイルを選択するよう指示します。

4
user2039152

-Cオプションは、czfオプションの前に指定する必要があります。次のコマンドを試してください。

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

0
jseokkim