Как мне распаковать.zip файлы в нескольких каталогах?
Мой каталог выглядит так
./Dir1/Some file.zip
./Dir2/Some other file.zip
./UnzipFiles.sh
Я хочу перебрать каждый каталог в ./
и распакуйте zip-файл каждого из них.
UnzipFiles.sh
выглядит так:
#!/bin/bash
for i in ./*/*.zip
do
cd "$i";
unzip "$i";
done
Но это распаковывает все в ./
, Я хочу, чтобы содержимое каждого файла.zip распаковывалось в каталог, содержащий его.
Как мне сделать это в Bash?
3 ответа
Решение
Я был cd
в каждый .zip
сам файл. Вместо этого мне нужно было сделать это:
#!/bin/bash
for i in ./*/
do
cd "$i";
unzip *.zip;
cd ../;
done
Простой лайнер, который может сэкономить вам много времени
$ для файла в ls *.zip
; сделать распаковать $ file -d echo $file | cut -d . -f 1
; сделанный
unzip '*.zip'
Это распакует каждый файл .zip в текущем каталоге.