Eliminar ficheros de forma recursiva en Linux por extensión

Debido al cambio de política en Google Fotos he decidido descargarme todas las fotos que tenía almacenadas allí para guardarlas en mi NAS.

Cuando las he descargado me he encontrado que había miles de ficheros .json que no quería conservar. De modo que para eliminar estos archivos con esta extensión simplemente nos situamos sobre el directorio donde se encuentren las fotos e introducimos el siguiente comando:

find . -name "*.json" -type f > ficherosjson

Hemos redirigido la salida del comando para poder analizar en el fichero que realmente se tratan de los archivos que queremos eliminar. Si una vez revisado todo queremos eliminarlos introduciremos el comando anterior eliminando la redirección y añadiendo la opción «-delete»:

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

Y ya estaría:

Por último, como Google Fotos te organiza las fotos en muchísimas carpetas por día…he preferido mover todas las imágenes a una carpeta para luego organizarlas por año.

El comando para mover todas las imágenes de golpe sería el siguiente:

find /mnt/HD/HD_a2/HDD_2TB/Fotos/Takeout/Google\ Fotos/ -type f -name *.jpg -exec mv {} ./mnt/HD/HD_a2/HDD_2TB/Fotos \;

Donde «/mnt/HD/HD_a2/HDD_2TB/Fotos/Takeout/Google\ Fotos/» es el directorio origen y «/mnt/HD/HD_a2/HDD_2TB/Fotos» el directorio destino.

Se puede hacer exactamente lo mismo para cualquier otra extensión como por ejemplo los posibles vídeos .mp4 que tuvieras alojados en la nube de Google.

find /mnt/HD/HD_a2/HDD_2TB/Fotos/Takeout/Google\ Fotos/ -type f -name *.mp4 -exec mv {} ./mnt/HD/HD_a2/HDD_2TB/Videos \;