7-zipで「圧縮せずに保存するファイル」を実行する方法


25

WinRARのように、特定のファイルタイプを7-zipでの圧縮から選択的に防ぐ方法はありますか?

私は巨大なフォルダ(多くのギガバイト)を圧縮しようとしていますが、すでに圧縮されたファイル(ZIPファイルなど)を再圧縮したくありません-それらは圧縮せずに保存されるべきです。


あなたがこれをしたいという特別な理由(可能な限り少しの処理時間を節約し、7zバイナリをバンドルせずに読んだり、LZMAを再実装したりするなど)。一般的に言って、私が遭遇したほとんどの圧縮ツールは、ファイルをさらに圧縮しようとしても反応が悪い場合、非圧縮のものを自動的に保存するのに十分なほど賢い傾向があります。
-ssokolow

@ssokolow:それは4年ぶりで、私はあなたの質問に答えたことはないと思いますが、破損による被害を最小限に抑えたり、災害時にデータを簡単に回復できるようにするなど、他の理由もあります。
Mehrdad

回答:


19

はい、同じ7-Zipアーカイブ内の異なるファイルに対して異なる圧縮方法を使用することができます。

7-Zipのコマンドラインバージョンを-mパラメーターとともに使用して、メソッドをとして指定しますCopy。これは、圧縮しないことを意味します。

例:

7za a -m0=Copy tmp7.7z *.txt

詳細については、-m(圧縮方法の設定)スイッチを参照してください


上記のコマンドは、txtファイルを圧縮せず、txtファイルのみを既存のアーカイブに追加します。上記のコマンドを実行する前に、非txtファイルでアーカイブファイルを作成する必要があります。n種類のファイルがある場合、それほど簡単ではありません。
プラヴィーン・スリパティ

-m0=Copy動作しない場合は、を試してください-mx=0
ボラM.アルパー

15

zipファイルがあり、フォルダーに非圧縮のtxtファイルがあると仮定しましょう。

最初のステップは、次のコマンドを使用してtxtファイルを圧縮するアーカイブを作成することです。

-mを使用して圧縮レベルを設定できます。これは、使用している圧縮方法にも依存します

ここでデフォルトの圧縮のみであると仮定しましょう

7z a compressed.7z *.txt -r 

これで、compressed.7zが取得されます。

第二段階は、このアーカイブにすでに圧縮ファイルをコピーするか、新しいアーカイブを作成することになります

7z u compressed.7z -u!update.7z -mx0 *.zip 

更新コマンドの詳細については、こちらをご覧ください

また、グラフィカルインターフェイスを使用する自由がある場合は、次の方法で更新を行うことができます。

ここに画像の説明を入力してください


面倒なことですが、うまくいくと思います、ありがとう。
Mehrdad

1

圧縮済みのファイルタイプ(.zipファイルなど)を再圧縮せずに保存することで、ディレクトリをすばやく圧縮するPowerShellスクリプトを作成しました。7zipのコマンドラインインターフェイスを使用し、ファイル名の拡張子を使用して、特定のファイルを圧縮するか、単に保存するかを決定します。

スクリプトはここで見つけることができます:https : //gist.github.com/ivanatpr/5dea086172eab573ba71


0

技術的には、圧縮されたファイルはそれ以上エントロピーの制限などについては圧縮しません。詳細は忘れますが、私が見た最大の2%未満です。

ほとんどの優れたコンプレッサーは圧縮をチェックし、圧縮できないファイルを保存するだけです。圧縮するとオーバーヘッドが増え、サイズが大きくなるからです。

もちろん、そもそもファイルを見る作業と時間はあります。

他の回答で説明したように、ファイルセットで複数のパスを実行することはおそらく最良のソリューションであり、簡単にスクリプト化できます。

7zアーカイブを作成し、すべてを1回のパスで圧縮ファイルに追加してから、事前に圧縮されたファイルを非圧縮データとして追加します。(圧縮可能なものはアーカイブの先頭にあり、圧縮可能でないものはすべて最後にあるため、このようにします。連続しているため、ドライブからより速くストリームオフします)

(「圧縮...」を使いすぎ!)


1
誰にも役立つ場合に備えて、「エントロピー制限などに関する何か」の要点を示します。エントロピーは予測不可能性の尺度と考えることができます。圧縮の背後にある考え方は、ビットのパターンを予測できれば、全体を保存する必要はないということです...それを予測する方法に関するよりコンパクトな命令(コードワード)です。理論上の最大エントロピーは、次のコードワードが何でもあり得る可能性がある場合に達成されます。2番目のパスで最初の出力の残りの予測可能性が特定されると、圧縮データからより多くの圧縮を絞り出します。
ssokolow
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.