tarしたファイルをサブディレクトリに置く


8

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

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

回答:


9

私は--transformオプションを使用したことがありませんが、必要なことを実行することがわかっています。

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

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


うーん、正しく実行されていないようです:file.z-> dirfile.zdirfolder_x。私も正規表現で遊んで、思い通りにできるかどうかを確認します。

1
方法は次のとおりです。tar -czf archive.tar.gz --transform 's、^、dir_q /、' file.y file.z folder_x Sedは、式にフォワードスラッシュがある場合のあいまいさを/の代わりに許可します。通常私はあなたがバックスラッシュでスラッシュをエスケープすることができると言いますが、sed(少なくとも、gnu sed)はそれを正しく解釈しません。
jdb 14

tar --transformはMacOSでは機能しないようです
Alexander Mills

MacOSでは、macportsとgnutarをインストールして--transformオプションを取得できます。またはgnutarを自分でダウンロードしてコンパイルします。
Marnix A. van Ammers

1

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

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

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

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