Bilder aus Ordner entfernen

Bilder aus Ordner entfernen

Ich möchte alle Fotos aus einem Ordner löschen und die restlichen Dateien behalten. Ich habe im Internet gesucht und jede Menge Lösungen gefunden, wie zum Beispiel:

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

Zwar sind alle Fotos im JPEG-Format, das Hauptproblem besteht jedoch darin, dass die Namen der Fotos nicht mit der Erweiterung „.jpg“ enden.

Kann mir jemand helfen?

Antwort1

das sollte reichen

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

Wenn die gewünschten Dateien gedruckt werden, ersetzen Sie echo "$i"durchrm "$i"

Antwort2

Okay, ich habe eine Lösung gefunden:

Versuchen Sie diesen Befehl

find . -name "*.jpg" -delete

Ich habe dies auf Xubuntu 14.04 ausprobiert und es hat gut funktioniert. Ich hoffe, das hilft!

Ich weiß, dass dies Ihrem Beispiel ähnlich ist, aber das Beispiel, das Sie gegeben haben, hat bei mir nicht funktioniert. Aber das hier ist ein einfacherer Einzeiler.

Antwort3

Hier ist ein Skript zum Entfernen aller Bilder:

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

Sie verwenden den zweiten Teil der Dateiausgabe , suchen darin file "$file"nach Schlüsselwörtern und entfernen dann die aktuelle Datei in der Schleife.image

Wenn Sie auch Bitmaps entfernen möchten:

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

verwandte Informationen