我想從資料夾中刪除所有照片並保留其餘文件。我在網上搜索,發現了很多解決方案,例如:
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