niedziela, 16 grudnia 2007

Skrypt do automatyzacji rozpakowywania plików

Obiecałem, że będę zamieszczał porady na temat Linux/Unix, więc to będzie mój pierwszy post tego typu.

Jeśli musicie co jakiś czas rozpakowywać z poziomu terminala wiele plików naraz, to z pewnością przydałaby się wam metoda zautomatyzowania tego procesu. Ja niedawno również stanąłem przed takim problemem i postanowiłem napisać krótki skrypt, który by mnie nieco wyręczył, ponieważ nie cierpię machinalnego powtarzania nieciekawych czynności :-) Oto moja propozycja skryptu do rozpakowywania wielu plików:

#!/bin/bash

find -maxdepth 1 -name '*.[zZ][iI][pP]' -exec unzip -o '{}' ';'
find -maxdepth 1 -name '*.[rR][aA][rR]' -exec unrar x '{}' ';'
find -maxdepth 1 -name '*.[zZrR][iIaA][pPrR]' -exec rm -rf '{}' ';'

Powyższy skrypt z pomocą wyrażeń regularnych sprawdza, czy w obecnym katalogu znajdują się pliki z rozszerzeniami *.zip, *.ZIP, *rar albo *.RAR, następnie je rozpakowuje i kasuje skompresowane pliki.

Jeśli ktoś nie chce pozbywać się skompresowanych plików może, pominąć ostatnią linijkę. Ja zapisałem ten skrypt jako "xpl" w katalogu $HOME/bin ale można go w innym katalogu, który znajduje się w zmiennej $PATH. Należy pamiętać o nadaniu plikowi odpowiednich uprawnień, czyli np.

$ chmod a+x $HOME/bin/

Istnieje sporo sposobów na osiągnięcie tego samego efektu (np. xargs etc.), więc jeśli ktoś będzie miał jakiś pomysł to proszę się nie krępować i napisać komentarz.

Brak komentarzy: