web-dev-qa-db-ja.com

tar.gz内の特定のフォルダーを解凍します

ターミナル/コマンドライン( buntu 14.04 (Trusty Tahr))を使用してtar.gz内の特定のフォルダーを解凍または解凍するにはどうすればよいですか?

正確:

-file.tar.gz
 -- folder1
 -- folder2

抽出する方法...

... folder1 -->  ~/locationX
... folder2 --> ~/locationY

これどうやってするの?

ご注意ください:これは純粋に端末/コマンドラインに関連しており、 Puppet ではありません。これはほんの一例です-tar.gz内から特定のフォルダーを解凍するコマンドがある場合、ファイルの移動を回避できるため、Puppetで約50の追加ステップを節約します...

7
frank

私はこれでうまくいくと思います:

tar -xzf file.tar.gz -C ~/locationX folder1 -C ~/locationY folder2

-Cオプションは、抽出を行う前に、指定されたディレクトリに移動することを意味します。 tarfile名の後にファイル名引数を指定すると、抽出がそれらのファイルまたはディレクトリのみに制限されます。そして、この-Changingディレクトリを繰り返すことができます。

これはサブディレクトリで抽出を行うことに注意してください:Folder1pathX/Folder1に入り、Folder2folderY/Folder2に入ります。これを防ぐには、--strip-componentsオプションを使用します。

tar -xzf file.tar.gz -C ~/locationX --strip-components=1 folder1 \
                     -C ~/locationY --strip-components=1 folder2

また、tarファイル内の実際のプレフィックスが./folder1および./folder2である場合、tar -czf file.tar.gz .を使用してtarファイルを作成した場合と同様に、ファイル名引数に./プレフィックスを含め、--strip-components=2に変更する必要があります。

15
Barmar