我的目录看起来像这样
./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中执行此操作?
答案 0 :(得分:1)
我cd
- 每个.zip
文件本身。相反,我需要这样做:
#!/bin/bash
for i in ./*/
do
cd "$i";
unzip *.zip;
cd ../;
done
答案 1 :(得分:1)
简单的衬垫可以为您节省大量时间
$ for ls *.zip
中的文件;解压缩$ file -d echo $file | cut -d . -f 1
;完成