Unix unzip:如何批量解压zip文件到一个文件夹并保存在子文件夹中?

说如果我有一个文件夹“图像”,里面有0001.zip到9999.zip,我想解压所有这些文件,并保存在他们的文件名的子文件夹,例如,0001.zip将被解压缩,保存到/ 0001,0002.zip将被解压缩并保存到/ 0002,我试着去做

unzip '*.zip' 

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

Solutions Collecting From Web of "Unix unzip:如何批量解压zip文件到一个文件夹并保存在子文件夹中?"

你可以做这样的事情:

  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"位。

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