web-dev-qa-db-ja.com

フォルダー名に含まれるディレクトリーなしでフォルダー(tar)を圧縮する

tarコマンドでフォルダーを圧縮しようとしています。

私がそれを圧縮しようとしているとき、それはうまく働きます。問題はファイル名にあります。

ソースパス:

/data/file/

宛先パス:

/data/repo/temp/file.tar.gz

tar zcvf $srcpath $destinationpath

別のフォルダーからコマンドを実行していますが、フォルダーを抽出している間、ファイルフォルダーだけではなく、すべてのサブディレクトリを取得しています。

20
Seetha Raman

これを行う最も簡単な方法は、最初にディレクトリにcdすることです:

cd /path/to/containing/folder && tar -zcvf tarfile.tar.gz foldername_tocompress

(含む)フォルダーのディレクトリが圧縮ファイルのルートディレクトリになるようにします。

もう少し高度なのは、-Cオプションを使用することです。

tar -zcvf tarfile.tar.gz -C /path/to/foldername_tocompress .

これにより、現在の(作業中の)ディレクトリにtar.gzファイルが作成され、foldername_tocompress内のすべてのファイル/フォルダーが含まれます(ドットに注意して、すべてのファイル/フォルダーを含める必要があります)。

47
Jacob Vlijm