Rozpakowywanie wielu archiwów
Napisał: Adam Brożyński
18/05/2007 w Techblog Brak komentarzy. (artykuł nr 19, ilość słów: 177)
K
ażdemu zdarza się czasami posiadać wiele archiwów ZIP, czy RAR, które trzeba rozpakować, jednak robienie tego ręcznie na kilkudziesięciu, czy kilkuset plikach może być nieco męczące. Zadanie to ułatwić nam może bash. Aby rozpakować wszystkie pliki z danego katalogu, wyświetlimy najpierw ich listę, za pomocą konsolowego polecenia ls, zapiszemy ją jako tablicę i na każdym z jej elementów wykonamy komendę, służącą do rozpakowywania z automatycznym nadpisywaniem (abyśmy nie musieli cały czas kontrolować ekranu).
Poniżej prosty skrypt, który obrazuje powyższe założenia:
#!/bin/bash IFS='' PLIKI=`ls -1 *.zip *.zip` # listuje pliki zip i ZIP # wyświetlając wyniki w osobnych liniach for i in $PLIKI # pętla dla każdego elementu w tablicy do echo $i # wyświetlenie elementu unzip -o ./$i # rozpakowanie pliku z nadpisaniem done
1. Metoda alternatywna (zasugerował Marcin Badurowicz & Piotr Hosowicz):
#!/bin/bash for x in *.[zZ][iI][pP] do echo $x unzip -o ./$x done
2. Metoda alternatywna (zasugerował Piotr Hosowicz):
ls -1 *.[zZ][iI][pP] | xargs -l unzip -o
3. Metoda alternatywna (zasugerował Michał Górny):
find -maxdepth 1 -name '*.[zZ][iI][pP]' -exec unzip -o '{}' ';'
Więcej informacji: blog Adama Brożyńskiego: dunder.jogger.pl