Terminal pogryzł człowieka: patool
Około 35 programów do kompresji, co najmniej sześć razy tyle parametrów i wszystko w jednym narzędziu o nazwie patool. Wszystko po to, aby ułatwić nam obsługę pakowanie zawartości naszych katalogów, przepakowywanie, testowanie i inne atrakcje. A wszystko to w tekstowych okolicznościach naszego podręcznego terminala linuksowego.
Ciężko w kilku słowach zawrzeć wszystkie pozytywne zachwyty nad patool. Nie dość, że program występuj w standardowych repozytoriach, to na dodatek w kilku prostych opcjach umożliwia obsługę niemal całego bogactwa narzędzi do archiwizacji i kompresji. Założeniem patool jest ułatwienie nam życia, zatem po zainstalowaniu programu i wydaniu polecenia –help nie zostaniemy zasypani zestawem nieprzebytych opcji:
positional arguments: {extract,list,create,test,repack,recompress,diff,search,formats} the archive command; type "patool COMMAND -h" for command-specific help extract extract one or more archives list list members or one or more archives create create an archive test test an archive repack repack an archive to a different format recompress recompress an archive to smaller size diff show differences between two archives search search contents of archive members formats show supported archive formats
I tylko tyle. Wypakuj (extract), spakuj (create), wylistuj zawartość (list), skompresuj ponownie (recompress), przepakuj do innego formatu (repack) to najważniejsze dla nas operacje. Dodatkowo mamy jeszcze możliwość podejrzenia obsługiwanych formatów (formats) – w zależności od zainstalowanych narzędzi do kompresji, sprawdzenia różnic pomiędzy archiwami oraz przetestowanie lub przeszukanie archiwum. No cóż, a gdzie tkwi wzmiankowana nietuzinkowość tego narzędzia? Proszę bardzo:
patool supports 7z (.7z), ACE (.ace), ADF (.adf), ALZIP (.alz), APE (.ape), AR (.a), ARC (.arc), ARJ (.arj), BZIP2 (.bz2), CAB (.cab), COMPRESS (.Z), CPIO (.cpio), DEB (.deb), DMS (.dms), FLAC (.flac), GZIP (.gz), ISO (.iso), LRZIP (.lrz), LZH (.lha, .lzh), LZIP (.lz), LZMA (.lzma), LZOP (.lzo), RPM (.rpm), RAR (.rar), RZIP (.rz), SHN (.shn), TAR (.tar), XZ (.xz), ZIP (.zip, .jar), ZOO (.zoo) and ZPAQ (.zpaq) formats. It relies on helper applications to handle those archive formats (for example bzip2 for BZIP2 archives). The archive formats TAR, ZIP, BZIP2 and GZIP are supported natively and do not require helper applications to be installed.
Dokładnie tylko archiwizerów i kompresorów jest w stanie zastąpić nam patool. Może nie tyle zastąpić, co skrócić czas poszukiwania parametrów potrzebnych do przeprowadzenia wymienionych wcześniej zadań dla każdego ze wspomnianych formatów. Oczywiście do obsługi wspomnianych wymagane są odpowiednie programy – a ich lista dostępna jest po formats.
Mając patool w systemie wszystko staje się prostsze.
Tworzenie archiwum:
# $ patool create obrazki.tar.xz obrazki/ patool: Creating obrazki.tar.xz ... patool: running /bin/tar --create --use-compress-program xz --file obrazki.tar.xz -- obrazki/ patool: ... obrazki.tar.xz created.
Przepakowanie zawartości do innego formatu:
# $ patool repack obrazki.tar.xz obrazki.tar.7z patool: Repacking obrazki.tar.xz to obrazki.tar.7z ... patool: running /bin/tar --extract --use-compress-program xz --file obrazki.tar.xz --directory /tmp/Unpack_toStSm patool: ... obrazki.tar.xz extracted to `/tmp/Unpack_toStSm'. patool: running /usr/bin/7z a -t7z -mx=9 -- /home/test/obrazki.tar.7z obrazki patool: ... repacking successful.
Optymalizacja kompresji:
# $ patool recompress obrazki.tar.xz patool: Recompressing obrazki.tar.xz ... patool: running '/usr/bin/xz' -c -d -- 'obrazki.tar.xz' > '/tmp/Unpack_tZ63AZ/obrazki.tar' patool: with shell='True' patool: ... obrazki.tar.xz extracted to `/tmp/Unpack_tZ63AZ'. patool: running '/usr/bin/xz' -c -9 -- 'obrazki.tar' > '/tmp/Unpack_UAGTz5/obrazki.xz' patool: with shell='True' patool: ... recompressed file is now 580B smaller.
I tak dalej. Wszystko czego potrzebujemy to pięć/sześć podstawowych komend oraz nazwa archiwum lub plików do zarchiwizowania (katalogu). Współpraca z dziesiątką przeróżnych narzędzi nigdy nie była taka przyjemna.
Dziękuję.
Genialne,proste i zajebiste.
Nigdy nie naumiałem się pakowania w konsoli, zawsze mi się mieszały te wszystkie “tar, gzip -vvfcośtam”. Prawie jak próba wyjścia z edytora vim. Proszę, a tu tak prosto.
Nie wiem czemu, ale pierwsze skojarzenie mam z patologią? A tak swoją drogą ile formatów kompresji regularnie używacie?
tar i 7z
Pierwsze, bo zachowuje uprawnienia, a drugie – szyfruje. Ale składni nie pamiętam. Robi to za mnie skrypt do backupu.
Z reguły tar.gz, w miarę ładnie kompresuje a używam tego praktycznie tylko do wysłania komuś / na chmurę jakiegoś gotowego projektu. Chyba, że to dla Windowsiarza, wtedy pakuję .zipem.
Jakby miał opcję robienia testów, który packer najlepiej spakuje dane to już byłby full wypas.
Tar nie jest formatem kompresji…