単一のコマンドで.tar.gzから最初のnバイトを抽出し、.tar.gzに出力します。

単一のコマンドで.tar.gzから最初のnバイトを抽出し、.tar.gzに出力します。

入力として.tar.gzがあり、そのうち最初の128MiBを抽出し、単一のコマンドで.tar.gzに出力しようとしています。私は試した:

sudo tar xzOf input.tar.gz | sudo dd of=output bs=1M count=128 iflag=fullblock | sudo tar -cfz final.tar.gz -T -

これは明らかに動作しません。どうすればいいですか?

ベストアンサー1

アーカイブの内容を抽出しようとしないでください(ここでは機能しません。個々のファイルのメタデータを追跡する方法はありません)、代わりに解凍して切り取り、再度圧縮してください。これを行うバージョンがある場合head

gzip -dc input.tar.gz | head -c128M | gzip -c > final.tar.gz

または、dd次のコマンドを使用できます。

gzip -dc input.tar.gz | dd bs=1M count=128 iflag=fullblock | gzip -c > final.tar.gz

おすすめ記事