合計約100GBの約350,000の非常に小さなファイルでディレクトリを圧縮する必要があります。私はOSXを使用しており、現在このディレクトリを.zipファイルに変換する標準の「圧縮」ツールを使用しています。これを行うより速い方法はありますか?
合計約100GBの約350,000の非常に小さなファイルでディレクトリを圧縮する必要があります。私はOSXを使用しており、現在このディレクトリを.zipファイルに変換する標準の「圧縮」ツールを使用しています。これを行うより速い方法はありますか?
回答:
ディレクトリの場合、max-compressionでtar
パイプされたものbzip2
を使用します。
簡単な方法は、
tar cfj archive.tar.bz2 dir-to-be-archived /
これは、アーカイブから小さなファイルセットを取得するつもりがなく
、必要なときにいつでもどこでも全体を抽出することを計画している場合に、うまく機能します。
しかし、あなたがあればやるのも悪くない、ファイルの小さなセットを取得したいです。
このようなアーカイブを呼び出しfilename.tar.bz2
、 ' xfj
'オプションで抽出することを好みます。
最大圧縮パイプは次のようになります。
tar cf-アーカイブされるディレクトリ/ | bzip2 -9-> archive.tar.bz2 #^ここからtarballを圧縮してアーカイブファイルにzip-in ^します。
注: ' bzip2
'メソッドおよびより多くの圧縮はgzip
、 ' tar cfz
' からの通常よりも遅くなる傾向があります。
高速なネットワークがあり、アーカイブを別のマシンに配置する
場合は、ネットワーク全体でパイプを使用して高速化できます(2台のマシンを効果的に併用する)。
tar cf-dir / | ssh user @ server "bzip2 -9-> /target-path/archive.tar.bz2" #^ネットワークを介してtarballをzip ^にパイプし、リモートマシンにアーカイブします。
いくつかの参照、
Dennis
この男はそれについていくつかの研究をしました。.zipは大きなファイルをより速く圧縮するようです。ただし、最大の圧縮サイズの1つが得られます。また、彼はWindowsユーティリティを使用していたように見えますが、OSXのユーティリティはほぼ最適化されていると確信しています。
これは、多くのファイルの速度について、多数の圧縮ユーティリティがベンチマークされている優れたWebサイトです。そのサイトには、最適なユーティリティを決定するために調べることができる他の多くのテストがあります。
速度の大部分は、使用するプログラムに関係しています。Windows用の7zipのユーティリティを使用しましたが、非常に高速であることがわかりました。ただし、多くのファイルを圧縮するのには時間がかかりますので、一夜にしておきます。または、圧縮せずにすべてをタールで圧縮することもできます...個人的には、大きなアーカイブを解凍するのが嫌いなので、それがあなたのやりたいことだと気をつけます。