Narzędzie wiersza polecenia 7z umożliwia określenie wielu metod kompresji , np .:
# 7-zip archive type, strongest (9) compression, methods PPMd, BCJ2, LZMA2
$ 7z a -t7z -mx=9 -m0=PPMd -m1=BCJ2 -m2=LZMA2 myarchive.7z somefile.xml
Wszystkie metody są używane w jakiś sposób lub przynajmniej określone w metadanych:
$ 7z l -slt myarchive.7z
7-Zip [64] 9.22 beta Copyright (c) 1999-2011 Igor Pavlov 2011-04-18
Listing archive: myarchive.
7z
--
Path = myarchive.7z
Type = 7z
Method = LZMA2 PPMD BCJ2
[..]
----------
Path = somefile.xml
[..]
Method = PPMD:o32:mem192m BCJ2 LZMA2:48m
Block = 0
To nie nie wydaje się, aby uruchomić plik za pomocą wszystkich trzech metod, wybierając najlepsze. Najwyraźniej zawsze wybiera pierwszą, ponieważ zmiana kolejności metody ma znaczący wpływ na rozmiar pliku.
Nawet jeśli dodam wiele plików, takich jak jeden plik XML (PPMd zapewnia najlepszą kompresję) i jeden plik binarny (robi to LZMA2), nadal wyświetla listę wszystkich metod dla obu plików i nie wydaje się przełączać dynamicznie dla poszczególnych plików.
W rzeczywistości, dokumentacja wyraźnie mówi, że „można użyć dowolnej liczby metod.”, Ale to nie znaczy Przeto .
To, co próbuję osiągnąć, to archiwum „wypróbuj wiele metod, wybierz najlepszą z nich” dla każdego pliku. Mogę oczywiście ręcznie to osiągnąć za pomocą małego skryptu, ale prawdopodobnie metody kompresji łańcuchowej powinny to zrobić?