O'Reilly logo

Bash. Receptury by Cameron Newham, JP Vossen, Carl Albing

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

17.3. Rozpakowywanie wielu plików ZIP

Problem

Chcemy rozpakować wiele archiwów ZIP znajdujących się w bieżącym katalogu, ale polecenie unzip *.zip nie działa zgodnie z przewidywaniami.

Rozwiązanie

Wzorzec dopasowania dla nazw plików trzeba otoczyć znakami apostrofu:

unzip '*.zip'

Można również wykorzystać pętlę, która zapewni rozpakowanie każdego z plików osobno:

for x in /ścieżka/do/data*/nazwa/*.zip; do unzip "$x"; done

lub:

for x in $(ls /ścieżka/do/data*/nazwa/*.zip; 2>/dev/null); do unzip "$x"; done

Analiza

W przeciwieństwie do większości poleceń systemu Unix (np. gzip, czy bzip2) ostatni parametr polecenia unzip nie odpowiada dowolnie definiowanej liście plików. Podczas przetwarzania instrukcji unzip *.zip powłoka zastępuje symbol wieloznaczny odpowiednimi ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required