1 votos

Encontrar imágenes de un específico tamaño y moverlos a la papelera desde la terminal

Im clasificar imágenes en una biblioteca de imágenes un poco grande y las miniaturas de la antigua biblioteca de iPhoto está todavía allí. Y tengo necesidad de eliminarlas para mejorar la velocidad de la clasificación de las imágenes.

He encontrado esta respuesta aquí para linux, pero ¿macOS? ¿Hay una manera de buscar una carpeta, de forma recursiva y determinar si la imagen *.jpg, *.png, *.bmp, *.jpeg tiene el W360 y H270?

Marcha Sierra 10.12.4

1voto

user3439894 Puntos 5883

Aquí es un ejemplo bash secuencia de comandos que puede alcanzar el objetivo de forma nativa, sin necesidad de instalar nada.

#!/bin/bash

targetDir="$HOME/Pictures"

find "$targetDir" -iname '*.jpg' -o -iname '*.png' -o -iname '*.bmp' -o -iname '*.jpeg' 2>/dev/null | \
while read -r filename; do
    hw="$(sips -g pixelHeight -g pixelWidth "$filename" 2>/dev/null)"
    h="$(awk '/pixelHeight/{print $2}'<<<"$hw")"
    w="$(awk '/pixelWidth/{print $2}'<<<"$hw")"
    if [[ $h -eq 270 ]] && [[ $w -eq 360 ]]; then
        echo rm "$filename"
    fi
done

Todo lo que usted necesita hacer es ajustar el targetDir variable al punto de partida de donde desea que el find comando buscar. El valor predeterminado es la carpeta de Imágenes dentro de tu carpeta de Inicio.

Nota: En el ejemplo de secuencia de comandos de la echo comando debe quitarse de en frente
rm "$filename" en el orden de los archivos para realmente ser eliminado y es allí, así que usted puede probar primero la salida de la secuencia de comandos en cuanto a lo de los archivos serán eliminados. Por supuesto, usted puede elegir quitar sin pruebas y solo ir a por ello, si estás seguro de que quiere eliminar .jpg, .png, .bmp o .archivo jpeg, con un tamaño de 270 píxeles de altura por 360 píxeles de ancho dentro de la targetDir.

También tenga en cuenta que dependiendo del total recuento de archivo del archivo de destino de las extensiones, la ejecución de este script puede tener una cierta cantidad de tiempo para completar. En mi sistema se encuentra ~1000 archivos para eliminar de 27500 archivos en mi carpeta de imagenes y las tomaron al menos 5 a 10 minutos para completar.

Dicho esto, me encontré con esta secuencia de comandos, como está escrito, y el único de los archivos, a continuación, el archivo de prueba que he creado con las dimensiones de destino, todos los otros archivos donde en una ubicación específica dentro de mi Biblioteca de iPhoto paquete en la carpeta de las Miniaturas. Así, no sólo será más fácil ir en el haz y eliminar el contenido en el Finder? Es decir, si es realmente de esas Miniaturas que desea deshacerse de!


Si usted no sabe cómo utilizar la secuencia de comandos, haga lo siguiente en la Terminal:

touch delete270x360images
open delete270x360images

Copie y pegue el código de secuencia de comandos , desde arriba, en el abierto delete270x360images documento, modificar, como se necesitaba/quería y, a continuación, guardar y cerrar.

En la Terminal, hacerlo ejecutable:

chmod u+x delete270x360images

Ahora para usar en la Terminal, escriba lo siguiente y, a continuación, presione entrar.

./delete270x360images

Espere a que se complete.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X