我有一个包含.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文件在不同的目录中具有相同的文件名,则可能会发生冲突(如果要展平目录结构,则无法避免这种情况).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。