入れ子になったtar.gzからファイルを抽出したい状況があります。 .tar.gzの構造は次のとおりです。
- test.tar.gz
- データ1
- データ2
- データ3
- test2.tar.gz
- データ4
- データ5
- テストログ
- データ5
- データ4
- test2.tar.gz
- データ3
- データ2
- データ1
ただ抽出したいのですがテストログファイルソース:test.tar.gz文書。私は見たこれ公開後にtar.gzファイルを抽出できますが、入れ子になったレベルでは抽出できません。
tar tfz data1.tar.gzを追加しています。出力フォルダ構造は、上記の構造を手動で入力する場合と異なる場合があります。
data1/.
data1/META.json
data1/TEMP
data1/TEMP/temp-2
data1/TEMP/temp-2/1-chksum.txt
data1/TEMP/temp-2/1
data1/TEMP/temp-2/1/otherfiles
data1/TEMP/temp-2/1/otherfiles/2016_06_24.tar.gz
だからテストログファイルが内部の入れ子になったフォルダに存在します。2016_06_24.tar.gz
答え1
data4などが圧縮されたtest2.tar.gzアーカイブのメンバーであると仮定して使用します。GNU タール--stripコンポーネントオプション:
tar xzOf ./test.tar.gz data1/data2/data3/test2.tar.gz | \
tar xzf - --strip-components=2 data4/data5/test.log
...最初のファイルにネストさtar
れた圧縮tarファイルを標準出力に抽出するように指示し、次に2番目のファイルにtar
入力ファイルをインポートし、data4/data5/test.logファイルのみを抽出して最初の2つのコンポーネントを削除するように指示します。 。これにより、test.logファイルが現在のディレクトリに配置されます。 GNU tarがない場合、--strip-comComponentsオプションを削除すると、アーカイブされたパスを使用してファイルが抽出されます。