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

linux – 仅解压缩特定扩展名

发布时间:2020-12-14 02:06:23 所属栏目:Linux 来源:网络整理
导读:我有一个包含.jpg,.png,.gif图像的zip档案目录.我想解压缩每个存档,只获取图像并将它们放在一个带有存档名称的文件夹中. 所以: files/archive1.zipfiles/archive2.zipfiles/archive3.zipfiles/archive4.zip 打开archive1.zip – take sunflower.jpg,rose_su
我有一个包含.jpg,.png,.gif图像的zip档案目录.我想解压缩每个存档,只获取图像并将它们放在一个带有存档名称的文件夹中.

所以:

files/archive1.zip
files/archive2.zip
files/archive3.zip
files/archive4.zip

打开archive1.zip – take sunflower.jpg,rose_sun.gif.创建文件夹files / archive1 /并将图像添加到该文件夹??,so files / archive1 / folder1.jpg,files / archive1 / rose_sun.gif.对每个存档执行此操作.

我真的不知道如何做到这一点,欢迎所有的建议.我有超过600个档案,自动解决方案将成为救星,最好是Linux解决方案.

解决方法

有点像:

#!/bin/bash
cd ~/basedir/files
for file in *.zip ; do
    newfile=$(echo "${file}" | sed -e 's/^files.//' -e 's/.zip$//')
    echo ":${newfile}:"
    mkdir tmp
    rm -rf "${newfile}"
    mkdir "${newfile}"
    cp "${newfile}.zip" tmp
    cd tmp
    unzip "${newfile}.zip"
    find . -name '*.jpg' -exec cp {} "../${newfile}" ';'
    find . -name '*.gif' -exec cp {} "../${newfile}" ';'
    cd ..
    rm -rf tmp
done

这是经过测试并将处理文件名中的空格(zip文件和提取的文件).如果zip文件在不同的目录中具有相同的文件名,则可能会发生冲突(如果要展平目录结构,则无法避免这种情况).

(编辑:李大同)

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

    推荐文章
      热点阅读