zipアーカイブの内容を同時に抽出して削除する方法は?

zipアーカイブの内容を同時に抽出して削除する方法は?

単一ファイル形式の複数の小さなファイルを含む大容量zipアーカイブ(> 180 GB)をSSDにダウンロードして抽出したいのですが、zipアーカイブと抽出されたコンテンツの両方を収容するのに十分な容量がありません。回答に記載されているzipコマンドを使用して、アーカイブから個々のファイルを抽出して削除できることを知っています。ここそしてここ。また、コマンドを使用してアーカイブ内のすべてのファイルの名前を取得し、上記のようにunzip -l結果を配列に保存することもできます。ここ、与えられた方法を使用して不要な値をフィルタリングします。ここ、上記のようにBASHで繰り返します。ここ。したがって、最終ロジックは次のようになります。

  1. unzip -lアーカイブ内の単一のファイル拡張子と一致する正規表現を使用してzipファイルの内容を一覧表示し、bash配列にファイル名を保存します。
  2. ファイル名の配列を繰り返して、unzip -j -dコマンドzip -dを使用して個々のファイルを継続的に抽出して削除します。

必要な時間、論理的な複雑さ、および計算リソースの面でどのようにこのアプローチを実現できますか?特に大容量アーカイブでは、個々のファイルを削除して抽出する効率が心配です。このアプローチについてのフィードバックやコメントがあれば聞きたいです。すべての助けに事前に感謝します。

ベストアンサー1

私が知っている限り、アーカイブからファイルを削除するには、zipアーカイブよりも2倍のスペースが必要になることがあります。したがって、USBスティックを接続し、そこにアーカイブを保存することをお勧めします。次に、ファイルをSSDに抽出し、必要でない場合はアーカイブを削除します。

おすすめ記事