階層のないアーカイブを作成する方法

階層のないアーカイブを作成する方法

同じような質問がたくさんあることはわかっていますが、今のところ答えは見つかっていません。

では、現在の作業ディレクトリにいると仮定しましょう:/テスト/ アーカイブ「test.tar.gz」に追加したいのですが、/テスト/アーカイブ/ に含まれるすべてのファイル/テスト/ファイル/そしてこのディレクトリfiles/を削除します

私は試した :

tar -cz -C archive -f "test.tar.gz" -C files ./* && rm -rf files

しかし成功しませんでした。

何かご意見は ?

ありがとう!ニコ

答え1

$ tar -zcvf archive/test.tar.gz files
files/
files/1
files/2
files/3

$ tar -zcvf archive/test.tar.gz -C files .
./
./1
./2
./3

tar の構造をどのようにしたいかによって異なります。

答え2

すでにログインしていると仮定すると、このような単一のコマンドが機能します。/test

(tar -cvf - ./files/* | gzip >./archive/test.tar.gz) && rm -rf files

を使用することで、コマンド-の出力を吐き出し、それをパイプして、その出力を次にリダイレクトします。tarstdoutgzip./archive

関連情報