1 votes

Recherchez les images d'une taille spécifique et déplacez-les vers la corbeille à partir du terminal.

Je trie des images dans une bibliothèque d'images assez grande, et les vignettes de l'ancienne bibliothèque iPhoto- sont toujours là. Et j'ai besoin de les supprimer pour améliorer la vitesse de tri des images.

J'ai trouvé ce Réponse ici pour linux, mais qu'en est-il de MacOS ? Existe-t-il un moyen de rechercher un dossier, de manière récursive, et de déterminer si l'image *.jpg, *.png, *.bmp, *.jpeg ont le W360 et le H270 ?

Utilisation de Sierra 10.12.4

1voto

user3439894 Points 52496

Voici un exemple bash script qui peut atteindre l'objectif nativement, sans avoir besoin d'installer quoi que ce soit.

#!/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

Tout ce que vous devez faire, c'est définir le targetDir variable au point de départ de l'endroit où vous voulez que le find commande à regarder. La valeur par défaut est le dossier Images de votre dossier Accueil.

Note : Dans l'exemple script le site echo commande doit être supprimé de l'avant de
rm "$filename" afin que le fichiers pour être réellement supprimée et est là pour que vous puissiez d'abord tester la sortie de la fonction script quant à ce que fichiers sera supprimé. Vous pouvez bien sûr choisir de le supprimer sans faire de test et vous lancer, si vous êtes sûr de vouloir supprimer tout fichier .jpg, .png, .bmp ou .jpeg ayant des dimensions de 270 pixels de hauteur sur 360 pixels de largeur dans l'espace de stockage de l'ordinateur. targetDir .

Notez également qu'en fonction du nombre total de fichiers des extensions de fichiers cibles, l'exécution de l'option script peut prendre un certain temps à se réaliser. Sur mon système, il a trouvé ~1000 fichiers à supprimer sur les 27500 fichiers de mon dossier Pictures et a pris au moins 5 à 10 minutes pour terminer.

Cela dit, j'ai exécuté ce script, tel qu'il est écrit, et les seuls fichiers autres que le fichier de test que j'ai créé avec les dimensions cibles, tous les autres fichiers trouvés se trouvaient à un emplacement spécifique dans mon paquet de bibliothèque iPhoto, dans le dossier Thumbnails. Donc, ne serait-il pas plus simple d'aller dans le paquet et de supprimer le contenu dans le Finder ? Enfin, s'il n'y a que les vignettes dont vous voulez vous débarrasser !


Si vous ne savez pas comment utiliser la fonction script faites ce qui suit dans le Terminal :

touch delete270x360images
open delete270x360images

Copiez et collez le script code d'en haut dans l'ouvert delete270x360images modifiez-le si nécessaire, puis enregistrez-le et fermez-le.

Dans le Terminal, rendez-le exécutable :

chmod u+x delete270x360images

Maintenant, pour l'utiliser dans le Terminal, tapez ce qui suit et appuyez sur Entrée.

./delete270x360images

Attendez qu'il soit terminé.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X