Mam katalog plików ZIP (utworzonych na komputerze z systemem Windows). Mogę ręcznie rozpakować je za pomocą unzip filename
, ale jak mogę rozpakować wszystkie pliki ZIP w bieżącym folderze za pomocą powłoki?
Korzystanie z Ubuntu Linux Server.
To działa w trybie bash, zgodnie z tym linkiem :
rozpakuj \ *. zip
Wystarczy wpisać kilka cytatów, aby uniknąć znaku zastępczego:
źródło
Poniższy skrypt bash wyodrębnia wszystkie pliki zip w bieżącym katalogu do nowych katalogów z nazwą pliku zip, tj .:
Następujące pliki:
Zostanie wyodrębniony do:
Skrypt powłoki:
źródło
"
do nazwy plikurozpakuj * .zip, lub jeśli są w podfolderach, to coś podobnego
źródło
gzip'ed
plików użyjgunzip -rfk .
do rekurencyjnego rozpakowywania w odpowiednich folderachRozpakuj wszystkie
.zip
pliki i zapisz zawartość w nowym folderze o tej samej nazwie i w tym samym folderze co.zip
plik:To jest rozszerzenie odpowiedzi @ phatmanace i adresuje komentarz @ RishabhAgrahari :
źródło
gzip'ed
plików użyjgunzip -rfk .
do rekurencyjnego rozpakowywania w odpowiednich folderachfind: illegal option -- n
z UnZip 6.00 - ktoś jeszcze?find . -name '*.zip' -exec sh -c 'unzip -d "${1%.*}" "$1"' _ {} \;
Zapomniałeś katalogu.Spowoduje to rozpakowanie wszystkich archiwów zip do nowych folderów o nazwach nazw plików archiwów zip.
a.zip
b.zip
c.zip
zostaną rozpakowanea
b
c
odpowiednio w folderach.źródło
aunpack -e *.zip
, zatool
zainstalowanym. Ma tę zaletę, że inteligentnie radzi sobie z błędami i zawsze rozpakowuje się do podkatalogów, chyba że zip zawiera tylko jeden plik. Zatem nie ma niebezpieczeństwa zanieczyszczenia bieżącego katalogu masą plików, tak jak ma to miejsce w przypadkuunzip
pliku zip bez struktury katalogów.źródło
W dowolnej powłoce POSIX spowoduje to rozpakowanie do innego katalogu dla każdego pliku zip:
źródło
for file in *.zip; do unzip "$file" -d "${file%.zip}"; done
Użyj tego:
źródło
for file in 'ls *.zip'; do unzip "${file}" -d "${file:0:-4}"; done
źródło
for file in *.zip; do ...
dobrze?Jeśli pliki są
gzip'd
. Następnie użyj:z katalogu głównego, aby rekurencyjnie wyodrębniać pliki w odpowiednich katalogach, zachowując oryginalne (lub usuń,
-k
aby je usunąć)źródło
Jest to wariant Pedro Lobito odpowiedź używając Jak pętli katalogu rekursywnie usunąć pliki o określonych rozszerzeniach nauk:
źródło
źródło
Aby rozpakować wszystkie pliki w katalogu, po prostu wpisz to polecenie cmd w terminalu:
źródło
Posługiwać się
rozpakować folder w systemie Linux
źródło