eliminar imágenes de la carpeta

eliminar imágenes de la carpeta

Quiero eliminar todas las fotos de una carpeta y conservar los archivos restantes. Busqué en la web y encontré un montón de soluciones como:

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

Todas las fotos son jpeg, sí, pero el principal problema es que los nombres de las fotos no terminan en su extensión ".jpg".

¿Alguien podría ayudarme?

Respuesta1

esto debería hacer

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

Si eso imprime los archivos deseados, reemplácelo echo "$i"conrm "$i"

Respuesta2

Bien, he encontrado una solución:

Prueba este comando

find . -name "*.jpg" -delete

Probé esto en Xubuntu 14.04 y funcionó bien. ¡Espero que esto ayude!

Sé que esto es similar a tu ejemplo, pero el ejemplo que diste no funcionó para mí. Pero esta es una frase más sencilla.

Respuesta3

Aquí hay un script para eliminar todas las imágenes:

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

Utiliza la segunda parte de file "$file"la salida del archivo y busca imagela palabra clave en ella, y luego elimina el archivo actual en el bucle.

Si también desea eliminar mapas de bits:

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

información relacionada