Czy w związku z rosnącą liczbą formatów plików archiwów / kompresji istnieje jedno narzędzie wiersza polecenia wolne / otwarte, aby rządzić nimi wszystkimi? Być może coś ze spójnym / zunifikowanym zestawem flag? (zwróć uwagę na moje przyjazne ukryte odniesienie do tar )
Raz spotkałem się z zestawem aliasów, które mają znacznie uprościć zadanie kompresji / dekompresji plików z powiązaniami do tar
i innymi narzędziami, ale nie mogę tego już znaleźć.
Aktualizacja:
Jak skonfigurować coś takiego, atool
aby nie używać unzip
do wyodrębniania plików zip (które najwyraźniej nie mogą obsługiwać plików większych niż 4 GB) i gunzip
zamiast tego używać ?
$ aunpack large_file.zip
error: Zip file too big (greater than 4294959102 bytes)
Archive: large_file.zip
warning [large_file.zip]: 1491344848 extra bytes at beginning or within zipfile
(attempting to process anyway)
error [large_file.zip]: start of central directory not found;
zipfile corrupt.
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
aunpack: unzip ...: non-zero return-code
tar
utilities
compression
Amelio Vazquez-Reina
źródło
źródło
unpack
odróżnićatool
?7z
.Odpowiedzi:
Używam atool . To działa. Działa z wieloma, choć nie wszystkimi formatami:
tar, gzip, bzip2, bzip, lzip, lzop, lzma, zip, rar, lha, arj, arc, p7zip itp.
Te narzędzia do kompresji są nadal potrzebne, ponieważ atool jest dla nich po prostu interfejsem użytkownika.
Szczególnie podoba mi się
als
polecenie, które udostępnia zawartość dowolnego obsługiwanego formatu archiwum.Polecenie główne
atool
używa własnych flag do rozpakowywania archiwów (przekazując odpowiednie flagi do określonych podstawowych narzędzi do rozpakowywania).Aha, i jest w repozytoriach niektórych dystrybucji (w moim przypadku Fedora, chociaż o ile pamiętam, kiedy korzystałem z Ubuntu, nie było ich wtedy w repozytoriach i instalowałem z tarballa).
Aktualizacja w repozytoriach : atool znajduje się w repozytoriach następujących dystrybucji (sprawdzone tylko bieżące wersje):
Jestem pewien, że istnieją inne ... prawdopodobnie najbardziej nowoczesne dystrybucje.
Odpowiedź na zaktualizowane pytanie „Jak mogę skonfigurować coś takiego jak atool, aby nie rozpakowywać plików w celu rozpakowywania plików zip ... i zamiast tego używać gunzip” :
Edytuj plik konfiguracyjny atool
~/.atoolrc
i dodaj wiersz:z prawidłową ścieżką do programu gunzip.
Zobacz stronę man, aby uzyskać pełną listę możliwych zmiennych, które możesz umieścić w tym pliku konfiguracyjnym, których jest dużo . Jeśli opcje wiersza poleceń niezbędne dla gunzip są inne niż rozpakowanie, może być konieczne zmodyfikowanie samego źródła atool (perl).
źródło
Oto mała funkcja powłoki, która obsługuje kilka typów archiwów.
Znalazłem oryginalną wersję tej funkcji gdzieś online i nieco ją zmodyfikowałem, aby wyodrębnić
ar
archiwa itar
archiwa skompresowane xz .źródło
bash
izsh
, ale powinno to również działaćsh
.System plików AVFS przedstawia widok systemu plików, w którym każdy plik archiwum (np.
/path/to/foo.zip
) Jest dostępny jako katalog (~/.avfs/path/to/foo/zip#
w tym przykładzie). AVFS zapewnia dostęp tylko do odczytu do najpopularniejszych formatów plików archiwów.Avfs korzysta z zewnętrznych pomocników, które można łatwo skonfigurować poprzez edycję plików w
/usr
(niestety od avfs 1.0 nie można używać plików w/usr/local
katalogu domowym ani w nim, należy edytować pliki/usr
lub rekompilować)./usr/share/avfs/extfs/ext-uzip
to skrypt do obsługi.zip
plików, zmień go, jeśli nie chcesz go używać/usr/bin/unzip
. Zamiast tego możesz uniknąć używania 7z: spróbuj edytować/usr/share/avfs/extfs/extfs.ini
i zmień wierszext-uzip
nau7z .zip
.źródło