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)

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

RSS feed

Komentarze

Brak komentarzy.

Nazwa (wymagane)
E-mail (wymagany - nie pokażemy go publicznie)
URI
Rozmiar pola: zmniejsz rozmiar | zwiększ rozmiar

W komentarzach możesz używać prostych tagów HTML. Przykłady:
  • 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>

Reklama :)

jakilinux.org - Linux krok po kroku!