加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – Unix unzip:如何批量解压缩文件夹中的zip文件并保存在

发布时间:2020-12-13 23:56:00 所属栏目:Linux 来源:网络整理
导读:假设我有一个文件夹’images’,里面有0001.zip到9999.zip,我想解压缩所有这些并将它们保存在具有文件名的子文件夹中,例如,0001.zip将被解压缩并且保存到/ 0001,0002.zip将解压缩并保存到/ 0002,我试着这样做 unzip '*.zip' 但是它会提取当前文件夹中的所有文
假设我有一个文件夹’images’,里面有0001.zip到9999.zip,我想解压缩所有这些并将它们保存在具有文件名的子文件夹中,例如,0001.zip将被解压缩并且保存到/ 0001,0002.zip将解压缩并保存到/ 0002,我试着这样做

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“位.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读