Распаковать все файлы в каталоге

У меня есть каталог ZIP файлов (созданных на Windows-машине). Я могу вручную распаковать их с помощью unzip filename, но как я могу разархивировать все ZIP файлы в текущей папке через оболочку?

Использование Ubuntu Linux Server.

Ответ 2

Просто введите некоторые кавычки, чтобы избежать подстановки:

unzip "*.zip"

Ответ 3

Извлекает все zip файлы в текущем каталоге в новые директории с именем файла zip.

ex, следующие файлы:

myfile1.zip
myfile2.zip 

будет извлечен:

./myfile1/files...
./myfile2/files...

Shell script:

#!/bin/sh
for zip in *.zip
do
  dirname=`echo $zip | sed 's/\.zip$//'`
  if mkdir "$dirname"
  then
    if cd "$dirname"
    then
      unzip ../"$zip"
      cd ..
      # rm -f $zip # Uncomment to delete the original zip file
    else
      echo "Could not unpack $zip - cd failed"
    fi
  else
    echo "Could not unpack $zip - mkdir failed"
  fi
done

Ответ 4

unzip *.zip, или если они находятся в подпапках, то что-то вроде

find . -name "*.zip" -exec unzip {} \;

Ответ 5

aunpack -e *.zip, с установленным atool. Имеет то преимущество, что он интеллектуально обрабатывает ошибки и всегда распаковывается в подкаталоги, если zip не содержит только один файл. Таким образом, нет никакой опасности заразить текущий каталог массами файлов, так как существует unzip на zip без структуры каталогов.

Ответ 6

for i in *.zip; do
newdir="${i:0:-4}" && mkdir "$newdir"
unzip "$i" -d  "$newdir"
done

Это распакует все zip-архивы в новые папки с именами файлов zip-архивов.

a.zip b.zip c.zip будет распакована в папки a b c соответственно.

Ответ 7

Используйте это:

for file in `ls *.Zip`; do
unzip ${file} -d ${unzip_dir_loc}
done

Ответ 8

for file in 'ls *.zip'; do unzip "${file}" -d "${file:0:-4}"; done

Ответ 9

for i in `ls *.zip`; do unzip $i; done

Ответ 10

Использование

sudo apt-get install unzip 

unzip file.zip -d path_to_destination_folder

чтобы распаковать папку в linux