Kompresja i dekompresja w konsoli – niezbędnik
[ środa, 19 Listopad 2008 ]
Kompresować można graficznie. Najbardziej znane programy dla Linuksa służące do tego to File Roller (domyślnie w GNOME), Ark (KDE), Xarchiver (dostarczany razem z Xfce; nie jest to oficjalny projekt tego środowiska). Można przeprowadzać takie operacje z poziomu menedżerów plików (np. w Nautilusie zaznaczamy pliki, klikamy prawym przyciskiem myszy, wybieramy Utwórz archiwum… – lub w konsoli, w trybie tekstowym (nie CLI), dzięki programowi mc).
Czynności te można jednak czasem wykonać (przy odrobinie wprawy) nieco szybciej, a już na pewno wliczając czas uruchamiania się aplikacji, szczególnie jeśli biblioteki danego programu nie zostały jeszcze załadowane do pamięci operacyjnej.
Oto ściągawka prezentująca, jak należy korzystać z podstawowych programów do kompresji / archiwizacji obsługiwanych z poziomu konsoli. Pokazane są tylko typowe zastosowania; więcej informacji znaleźć można wpisując man program.
legenda:
PLIKI oznacza umownie listę plików lub katalogów w formacie plik1 plik2 plik3 katalog1/ katalog2/ itd.
tar
tworzenie archiwum
tar -cvf archiwum.tar PLIKI lub tar –create –verbose –file=archiwum.tar PLIKI
(Parametr -v (–verbose) jest opcjonalny; dzięki niemu tar pokazuje, który plik jest właśnie dodawany do archiwum.
Uwaga! Jeżeli plik archiwum.tar już istnieje, zostanie zamazany bez pytania.)
wyświetlenie listy plików w archiwum
tar -tf archiwum.tar (tar -tvf archiwum.tar) lub tar –list –file=archiwum.tar (tar –list –verbose –file=archiwum.tar)
rozpakowanie archiwum archiwum.tar do katalogu /tmp
cd /tmp tar -xvf archiwum.tar lub tar –get –verbose –file=archiwum.tar lub tar –extract –verbose –file=archiwum.tar
ewentualnie
tar -xvf archiwum.tar -C /tmp lub analogicznie tar –get –verbose –file=archiwum.tar –directory=/tmp
Katalog, do którego chcemy rozpakować pliki, musi istnieć.
Uwaga: pliki są nadpisywane bez pytania.
rozpakowanie wybranych plików do katalogu /tmp
tar -xvf archiwum.tar -C /tmp PLIKI
Katalog, do którego chcemy rozpakować pliki, musi istnieć.
dołączanie plików na koniec archiwum
tar -rf archiwum.tar PLIKI lub tar –append –file=archiwum.tar PLIKI (j.w. można też z -v lub –verbose)
usuwanie pliku/plików PLIKI z archiwum
tar –delete -f archiwum.tar PLIKI lub tar –delete –file=archiwum.tar PLIKI
Poleceniem tym można usuwać całe ścieżki z archiwum. Warto zachować ostrożność.
tar + gzip
tworzenie archiwum
tar -zcvf archiwum.tar.gz PLIKI lub tar –gzip …
rozpakowanie archiwum
tar -zxvf archiwum.tar.gz lub tar –gzip lub … tar –gunzip … lub tar –ungzip …
tar + bzip2
tworzenie archiwum
tar -jcvf archiwum.tar.gz PLIKI lub tar –bzip2 …
rozpakowanie archiwum
tar -jxvf archiwum.tar.bz2 lub tar –bzip2 …
zip
tworzenie archiwum
zip -r archiwum.zip PLIKI
(Parametr -r jest potrzebny, gdy dodajemy również katalogi – powoduje on, że do pliku archiwum.zip trafia nie tylko dany katalog, ale również jego zawartość. Gdy podajemy tylko nazwy plików, -r można pominąć.)
Jeżeli plik archiwum.zip istnieje, PLIKI są do niego dołączane.
wyświetlenie listy plików w archiwum
unzip -l archiwum.zip
testowanie archiwum
unzip -t archiwum.zip
rozpakowanie archiwum archiwum.zip do katalogu /tmp
unzip z.zip -d /tmp
rozpakowanie archiwum archiwum.zip, przywracając oryginalne wartości UID i GID (dotyczy systemów UNIX i pochodnych)
unzip -X archiwum.zip
Inaczej niż w przypadku programu tar: jeśli katalog, do którego chcemy rozpakować archiwum nie istanieje, zostanie on utworzony.
rozpakowanie wybranych plików do katalogu /tmp
unzip archiwum.zip -d /tmp PLIKI
dołączanie plików do archiwum
zip -r archiwum.zip PLIKI
usuwanie pliku/plików PLIKI z archiwum
zip -d archiwum.zip PLIKI
gzip
kompresowanie pliku
Uwaga. Program gzip nie archiwizuje plików – plik .gz może przechować tylko 1 plik (w postaci skompresowanej).
gzip PLIK (uwaga: PLIK zostanie usunięty)
To polecenie tworzy plik o nazwie PLIK.gz, a następnie usuwa PLIK.
kompresowanie pliku – sposób drugi (bez usuwania pliku wejściowego)
gzip -c PLIK > nowyplik.gz
Uwaga. Jeżeli nowyplik.gz istnieje, zostanie nadpisany bez pytania.
testowanie pliku
gzip -tv plik.gz
wyświetlenie informacji o pliku .gz
gunzip -l plik.gz lub gunzip -lN plik.gz
(Szczypta “teorii”. Gdy program gunzip dekompresuje plik, domyślnie nadaje nowemu taką samą nazwę, ale bez rozszerzenia .gz. Jeśli dodamy parametr -N, utworzony plik będzie miał nazwę taką, jaką miał przed kompresją.
Stąd parametr -N ma znaczenie także przy wyświetlaniu informacji o pliku gzip w polu uncompressed_name – nazwa pliku po dekompresji.)
rozpakowanie pliku plik.gz do katalogu /tmp
cd /tmp gunzip plik.gz lub gunzip -N plik.gz
rozpakowanie pliku nowyplik.gz do katalogu /tmp – sposób drugi
gunzip -c plik.gz > /tmp/mój_plik
Uwaga. Jeżeli mój_plik istnieje, zostanie nadpisany bez pytania.
bzip2
kompresowanie pliku
Uwaga. Program bzip2 nie archiwizuje plików – plik .bz2 może przechować tylko 1 plik (w postaci skompresowanej).
bzip2 PLIK (uwaga: PLIK zostanie usunięty)
To polecenie tworzy plik o nazwie PLIK.bz2, a następnie usuwa PLIK.
kompresowanie pliku – sposób drugi (bez usuwania pliku wejściowego)
bzip2 -k PLIK
testowanie pliku
bunzip2 -tv plik.bz2
(Podobnie jak w przypadku gzipa, po dekompresji program bzip2 domyślnie nadaje nowemu plikowi taką samą nazwę, ale bez rozszerzenia .bz2.
Tutaj jednak nie występuje parametr o funkcji takiej, jaką ma -N z gzipa.)
rozpakowanie pliku plik.bz2 do katalogu /tmp
cd /tmp bunzip2 plik.bz2
Jeśli plik.bz2 nie ma być usunięty, stosujemy parametr -k.
rozpakowanie pliku nowyplik.gz do katalogu /tmp – sposób drugi
bunzip2 -c plik.bz2 > /tmp/mój_plik
Uwagi. W tym przypadku plik.bz2 nie zostanie usunięty. Natomiast, jeżeli mój_plik istnieje, zostanie nadpisany bez pytania.
Porada. Masz zepsuty plik bz2? Spróbuj go naprawić za pomocą polecenia bzip2recover! Może chociaż część pliku da się uratować…
7-zip
7-zip jest uniwersalnym programem kompresującym. Obsługuje kilka formatów kompresji, ma również swój – 7z, wykorzystujący domyślnie algorytm LZMA, który jest stosowany w niektórych paczkach deb.
Największą wadą formatu 7z jest to, że nie zapisuje “uniksowych” informacji o właścicielu i grupie plików. Stąd niezalecane jest używanie archiwum 7z do przechowywania kopii zapasowych w Linuksie. Zamiast tego warto utworzyć plik tar z wybranymi plikami, a dopiero potem skompresować w formacie 7z.
Co więcej, również pliki w innych formatach (zip, tar) utworzone za pomocą 7z nie mają ustawionych wartości UID/GID.
tworzenie archiwum
7z a archiwum.7z PLIKI
wyświetlenie listy plików w archiwum
7z l archiwum.7z
testowanie
7z t archiwum.7z
rozpakowanie archiwum archiwum.7z do katalogu /tmp
7z x archiwum.7z -o/tmp
Po parametrze -o nie ma być odstępu.
rozpakowanie wybranych plików do katalogu /tmp
7z x archiwum.7z -o/tmp PLIKI
dołączanie plików do archiwum
7z a archiwum.7z PLIKI
usuwanie pliku/plików PLIKI z archiwum
7z d archiwum.7z PLIKI
Na koniec ciekawostka. Wiele graficznych narzędzi do kompresji/dekompresji plików nie robi tego “samodzielnie”, ale używa zewnętrznych poleceń – takich jak te wymienione. Taki program określamy mianem front-end. Przykładem takiej aplikacji jest File Roller.
Wiadomość źródłowa: Kompresja i dekompresja w konsoli – niezbędnik (Blog o Linux Ubuntu)
Komentarze
- Link: <a href="jaklinux.org">Linux dla każdego</a>,
- Wytłuszczenie: <strong>tekst pogrubiony</strong>,
- Kursywa: <em>tekst pochylony</em>,
- Przekreślenie: <strike>
tekst przekreślony</strike>, - Kod: <code>
printf("blok kodu");</code>, - Cytat: <blockquote>cytat</blockquote>


Brak komentarzy.