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


39

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

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

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

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


3
あなたはその意味を誤解しているようです-C(あいまいに文書化されているので奇妙ではありません)。詳細については、serverfault.com / q / 416002/86283を参照してください。
NN

回答:


48

他のディレクトリへの変更を指示するために特に使用する必要がない場合、簡単な方法は、コマンドラインでアーカイブへのフルパスを指定することです。その後、任意のディレクトリに移動して、アーカイブ内に必要なディレクトリ構造を作成できます。-Ctar

以下は、アーカイブを作成し、アーカイブ内のパス情報なしで、現在のディレクトリ(それが何であれ)からアーカイブ/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


1
相対パスを使用することもできます。
NN

@NN絶対にですが、何$PWDがわからないので、この例では絶対パスを使用するのが最も安全と思われます。
CVn

確かに、それが問題を解決するための利用可能なオプションであることを示すためにそれを含めることは理にかなっています。
NN

そのように、のパス file1すれば、tarアーカイブ内になります/tmp。これは、予想どおりの場合とそうでない場合があります。
mouviciel

8

圧縮データをストリームに変換し(-)、名前を変更し、選択した場所に簡単に移動(>)します(また、相対パス(./)を常にtarするため、圧縮解除時に対処しやすくなります)

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

これは個々のファイルには役に立たず、-Cはるかに慣用的(かつ短い)です。
マフムードアルクッディ

3

私は思うに、それは:
tar czf file.tar.gz -C /var/www/ file1

それは私のために働く。ディレクトリを変更してからファイルを選択するように指示します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.