przystajnik

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.

Post navigation

7 comments for “Terminal pogryzł człowieka: patool

  1. megaziuziek
    13 stycznia, 2017 at 21:56

    Dziękuję.
    Genialne,proste i zajebiste.

  2. golem14
    14 stycznia, 2017 at 22:28

    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.

  3. ⲼⲶ
    15 stycznia, 2017 at 11:31

    Nie wiem czemu, ale pierwsze skojarzenie mam z patologią? A tak swoją drogą ile formatów kompresji regularnie używacie?

  4. clfapujc
    15 stycznia, 2017 at 11:51

    tar i 7z
    Pierwsze, bo zachowuje uprawnienia, a drugie – szyfruje. Ale składni nie pamiętam. Robi to za mnie skrypt do backupu.

  5. 18 stycznia, 2017 at 8:17

    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.

  6. 12 marca, 2017 at 0:33

    Jakby miał opcję robienia testów, który packer najlepiej spakuje dane to już byłby full wypas.

  7. 12 marca, 2017 at 10:40

    Tar nie jest formatem kompresji…

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Translate »