从文件夹中删除图片

从文件夹中删除图片

我想从文件夹中删除所有照片并保留剩余文件。我在网上搜索并找到了很多解决方案,例如:

find . -type f -name "*.jpg" -delete

是的,所有照片都是 jpeg,但主要问题是照片名称没有以扩展名“.jpg”结尾。

有人能帮助我吗?

答案1

这应该做

for i in *; do 
    TESTRESULT=$(file --mime-type -b "$i"); 
    if [ "$TESTRESULT" == "image/jpeg" ]; then 
        echo "$i"; 
    fi;
done

如果打印出所需的文件,请替换echo "$i"rm "$i"

答案2

好的,我找到了解决方案:

尝试这个命令

find . -name "*.jpg" -delete

我在 Xubuntu 14.04 上尝试过,效果很好。希望这对你有帮助!

我知道这与您的示例类似,但您给出的示例对我来说不起作用。但这是一个更简单的单行代码。

答案3

以下是删除所有图像的脚本:

userX@ubuntu:~$ cat removeImages.sh 
#!/bin/bash
path=/home/userX/Downloads/*;
for file in $path
do
  fileInfo=`file "$file" |awk -F: '{print $2}'`
  if [[ $fileInfo =~ .*image.* ]]; then echo "Removing: " $file; rm $file; fi
done

您使用文件file "$file"输出的第二部分并在其中查找image关键字,然后在循环中删除当前文件。

如果您还想删除位图:

userX@ubuntu:~$ cat removeImages.sh 
#!/bin/bash
path=/home/userX/Downloads/*;
for file in $path
do
  fileInfo=`file "$file" |awk -F: '{print $2}'`
  if [[ $fileInfo =~ .*image.*]] || [[$fileInfo =~ .*bitmap.* ]]; 
  then echo "Removing: " $file; rm $file; fi
done

相关内容