Tar’em all, czyli jak w prosty sposób rozpakowywać pliki w Linuksie


 

tar linuxKażdy, kto korzysta z linuksa wie, że istnieje wiele formatów plików spakowanych (zdaje się, że wiedzą to także użytkownicy Windows ;) ). Nie wiem jak inni, ale ja często zastanawiałem się jakie przełączniki używać to konkretniej „wersji” plików .tar. Oczywiście można za każdym razem zaglądać do manuala polecenia „tar” lub innego „rozpakowywacza”, ale przecież jest to strata czau i w końcu to też się nudzi. Jak zwykle, moje lenistwo wzięło górę, więc postanowiłem sobie zautomatyzować proces wyodrębniania plików z dowolnego achiwum. ;)

Nic nie może się równać z radością z napisania (działającego) skryptu, który ułatwia codzienne wykonywanie czynności. Mnogość rozszerzeń archiwów linuksowych wymusiła zgłębienie się w opcje rozpakowywania najpopularniejszych znanych mi archiwów i wyłuskanie z nich tego, co było mi potrzebne do ułatwienia sobie codziennego życia.

W skrypcie znalazły się więc polecenia do obsługi również archiwów .zip .gzip .rar .7z. Całość prezentuje się zaś następująco:

extract () {
   if [ -f $1 ] ; then
       case $1 in
	*.tar.bz2)	tar xvjf $1 && cd $(basename "$1" .tar.bz2) ;;
	*.tar.gz)	tar xvzf $1 && cd $(basename "$1" .tar.gz) ;;
	*.tar.xz)	tar Jxvf $1 && cd $(basename "$1" .tar.xz) ;;
	*.bz2)		bunzip2 $1 && cd $(basename "$1" /bz2) ;;
	*.rar)		unrar x $1 && cd $(basename "$1" .rar) ;;
	*.gz)		gunzip $1 && cd $(basename "$1" .gz) ;;
	*.tar)		tar xvf $1 && cd $(basename "$1" .tar) ;;
	*.tbz2)		tar xvjf $1 && cd $(basename "$1" .tbz2) ;;
	*.tgz)		tar xvzf $1 && cd $(basename "$1" .tgz) ;;
	*.zip)		unzip $1 && cd $(basename "$1" .zip) ;;
	*.Z)		uncompress $1 && cd $(basename "$1" .Z) ;;
	*.7z)		7z x $1 && cd $(basename "$1" .7z) ;;
	*)		echo "don't know how to extract '$1'..." ;;
       esac
   else
       echo "'$1' is not a valid file!"
   fi
}

Dla maksymalnego uproszczenia swojego życia wystarczy wkleić powyższy kod do pliku .bashrc w Waszym katalogu domowym.

Od tego momentu zamiast pisać całe polecenie (pamiętając o odpowiednich przełącznikach, dla odpowiednich plików):

tar xvzf nazwa_pliku.tar.gz

Wystarczy wykonać następujące polecenie:

extract nazwa_pliku

Prawda, że tak jest wygodniej? Chyba nawet bardziej elegancko ;)
Jeśli znacie jakieś inne rozszerzenia i komendy do rozpakowywania spakowanych archiwów w linuksie, dajcie znać i śmiało modyfikujcie sobie powyższą komendę – gdy jej stosowanie wejdzie Wam w krew, życie stanie się o wiele prostsze ;) Jeśli interesują Was inne Liunksowe zagadnienia, zachęcam do komentowania.


Podobne Tematy:

  • Krzysztof

    Witam.
    W jaki sposób roztarować skryptem 2500 plików z rozszerzeniem .tgz

  • Anonim

    pętla ;]

  • Jaroslaw

    jak otworzyć plik z rozszerzeniem .ksi

    • catem :)

      • Jaroslaw

        You can clearly
        I have linux on a stick truncated version
        I do not know Linux, but it needs to extract the archive with the extension .KSI

        • KSI file extension is associated with the Alloy Blending System (ABS) application developed by Keystone Systems that was acquired by Tube City. The .ksi file contains data used by ABS. KSI file is stored in simple text format and it is viewable in the text editor.

  • Jaroslaw

    KSI jest to archiwum w tym jest zapisane oprogramowanie do Keyboardu, są tam style brzmienia itd. potrzebuje programu który by wypakował tak jak np. Winrar.
    Dowiedziałem się że linuxie otwiera sie to bez problemu jako archiwum, ale mam linuxa wersje testową na Pendrive więc może nie ma wszystkich funkcje ?