cd dir zip_list=($(find . -type f -name "*.zip")) echo ${zip_list[@]} s="" for((i=0;i<${#zip_list[@]};i++)) do # echo ${zip_list[$i]} if [[ -n $s ]]; then s="$s ${zip_list[$i]}" # 应对文件名里有空格的情况 else s=${zip_list[$i]} fi if [[ ${zip_list[$i]} =~ .*\.zip$ ]]; then echo extracting $s ... unzip "$s" -d "${s:0:$((${#s}-4))}" s="" fi done