web-dev-qa-db-ja.com

tarファイルをサブディレクトリに配置します

次のようなディレクトリ設定があります。

folder_x
file.y
file.z

Tarファイルを作成して、抽出したときに構造が次のようになるようにします。

dir_q/folder_x
dir_q/file.y
dir_q/file.z

tarを使用してこれを機能させるにはどうすればよいですか?参考までに、私が使用している現在のコマンドは次のとおりです。

tar -czf archive.tar.gz file.y file.z folder_x
8
user49841

--transformオプションを使用したことはありませんが、必要な処理を実行できると思います。

tar -czf archive.tar.gz --transform 's,^,dir_q/,' file.y file.z folder_x

区切り文字として,の代わりに/を使用することを実現して、末尾にスラッシュを追加できるようにします。

新しいディレクトリを作成してもかまわない場合...

mkdir dir_q; tar -C $ _ -xzvf archive.tar.gz

または、新しいディレクトリを作成し、ファイルをそのディレクトリにuntarしてから、親ディレクトリから再tarして、抽出されたバージョンにその名前を含めます。そうすれば、非常に長い呼び出しを覚えておく必要はありません。

1
John T