Unix的解压:如何批量解压后的文件夹中的zip文件,并保存在子文件夹?(Unix unzip: h

2019-07-30 18:26发布

说,如果我有一个文件夹“图片”和它里面有0001.zip到9999.zip,我要解压缩所有的人,并将它们保存在子文件夹中拥有自己的文件名,例如,0001.zip将被解压缩和保存/ 0001,0002.zip将解压缩并保存到/ 0002,我试着做

unzip '*.zip'

但是,提取当前文件夹中的所有文件。

Answer 1:

你可以这样做:

 for file in *.zip; do
       dir=$(basename "$file" .zip) # remove the .zip from the filename
       mkdir "$dir"
       cd "$dir" && unzip ../"$file" && rm ../"$file" # unzip and remove file if successful
       cd ..
  done

或者,在一行中一起运行:

  for file in *.zip; do dir=$(basename "$file" .zip); mkdir "$dir"; cd "$dir"; unzip ../"$file" && rm ../"$file"; cd ..; done

如果您需要/想保持原来的.zip文件,只是删除&& rm ../"$file"位。



Answer 2:

for zip in *.zip
do
    unzip "$zip" -d "${zip%.zip}"
done


文章来源: Unix unzip: how to batch unzip zip files in a folder and save in subfolders?