WinRARのように、特定のファイルタイプを7-zipでの圧縮から選択的に防ぐ方法はありますか?
私は巨大なフォルダ(多くのギガバイト)を圧縮しようとしていますが、すでに圧縮されたファイル(ZIPファイルなど)を再圧縮したくありません-それらは圧縮せずに保存されるべきです。
WinRARのように、特定のファイルタイプを7-zipでの圧縮から選択的に防ぐ方法はありますか?
私は巨大なフォルダ(多くのギガバイト)を圧縮しようとしていますが、すでに圧縮されたファイル(ZIPファイルなど)を再圧縮したくありません-それらは圧縮せずに保存されるべきです。
回答:
はい、同じ7-Zipアーカイブ内の異なるファイルに対して異なる圧縮方法を使用することができます。
7-Zipのコマンドラインバージョンを-m
パラメーターとともに使用して、メソッドをとして指定しますCopy
。これは、圧縮しないことを意味します。
例:
7za a -m0=Copy tmp7.7z *.txt
詳細については、-m(圧縮方法の設定)スイッチを参照してください。
-m0=Copy
動作しない場合は、を試してください-mx=0
。
zipファイルがあり、フォルダーに非圧縮のtxtファイルがあると仮定しましょう。
最初のステップは、次のコマンドを使用してtxtファイルを圧縮するアーカイブを作成することです。
-mを使用して圧縮レベルを設定できます。これは、使用している圧縮方法にも依存します
ここでデフォルトの圧縮のみであると仮定しましょう
7z a compressed.7z *.txt -r
これで、compressed.7zが取得されます。
第二段階は、このアーカイブにすでに圧縮ファイルをコピーするか、新しいアーカイブを作成することになります
7z u compressed.7z -u!update.7z -mx0 *.zip
更新コマンドの詳細については、こちらをご覧ください
また、グラフィカルインターフェイスを使用する自由がある場合は、次の方法で更新を行うことができます。
圧縮済みのファイルタイプ(.zipファイルなど)を再圧縮せずに保存することで、ディレクトリをすばやく圧縮するPowerShellスクリプトを作成しました。7zipのコマンドラインインターフェイスを使用し、ファイル名の拡張子を使用して、特定のファイルを圧縮するか、単に保存するかを決定します。
スクリプトはここで見つけることができます:https : //gist.github.com/ivanatpr/5dea086172eab573ba71
技術的には、圧縮されたファイルはそれ以上エントロピーの制限などについては圧縮しません。詳細は忘れますが、私が見た最大の2%未満です。
ほとんどの優れたコンプレッサーは圧縮をチェックし、圧縮できないファイルを保存するだけです。圧縮するとオーバーヘッドが増え、サイズが大きくなるからです。
もちろん、そもそもファイルを見る作業と時間はあります。
他の回答で説明したように、ファイルセットで複数のパスを実行することはおそらく最良のソリューションであり、簡単にスクリプト化できます。
7zアーカイブを作成し、すべてを1回のパスで圧縮ファイルに追加してから、事前に圧縮されたファイルを非圧縮データとして追加します。(圧縮可能なものはアーカイブの先頭にあり、圧縮可能でないものはすべて最後にあるため、このようにします。連続しているため、ドライブからより速くストリームオフします)
(「圧縮...」を使いすぎ!)