Trova le immagini di una dimensione specifica e spostale nel cestino dal terminale

1

Im ordinare le immagini in una libreria di immagini di grandi dimensioni e le miniature della vecchia libreria di iPhoto sono ancora lì. E ho bisogno di rimuoverli per migliorare la velocità di smistamento delle immagini.

Ho trovato questo rispondere qui per Linux, ma per quanto riguarda macOS? C'è un modo di cercare una cartella, in modo ricorsivo, e determinare se l'immagine *.jpg, *.png, *.bmp, *.jpeg ha il W360 e l'H270?

Esecuzione di Sierra 10.12.4

    
posta Adam 18.04.2017 - 13:17
fonte

1 risposta

1

Ecco un esempio di bash script che può raggiungere l'obiettivo in modo nativo, senza bisogno di installare nulla.

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

Tutto ciò che devi fare è impostare la targetDir variabile sul punto di partenza in cui vuoi che il find comando guardi. L'impostazione predefinita è la cartella Immagini all'interno della cartella Home.

Nota: nell'esempio script il comando echo deve essere rimosso da davanti a
rm "$filename" in ordina che i file siano effettivamente cancellati ed è lì così puoi prima testare l'output dello script su quali file saranno cancellati. Ovviamente puoi scegliere di rimuoverlo senza test e basta provare, se sei sicuro di voler eliminare qualsiasi file .jpg, .png, .bmp o .jpeg con dimensioni di 270 pixel di altezza per 360 pixel di larghezza all'interno il targetDir .

Inoltre, a seconda del numero totale di file delle estensioni di file di destinazione, l'esecuzione di questo script può richiedere un po 'di tempo per essere completata. Sul mio sistema sono stati trovati ~ 1000 file da eliminare su 27500 file nella cartella Immagini e sono stati necessari almeno da 5 a 10 minuti.

Detto questo, ho eseguito questo script, come è scritto, e gli unici file diversi dal file di test che ho creato con le dimensioni di destinazione, tutti gli altri file trovati in una posizione specifica all'interno del mio pacchetto iPhoto Library nella cartella Thumbnails. Quindi, non sarebbe più semplice andare nel bundle ed eliminare i contenuti in Finder? Cioè, se sono davvero solo quelle Miniature di cui vuoi liberarti!

Se non sai come usare lo script , fai quanto segue in Terminale:

touch delete270x360images
open delete270x360images

Copia e incolla il codice dello script dall'alto nel documento delete270x360images aperto, modifica come necessario / voluto e poi salva e chiudi.

In Terminale, rendilo eseguibile:

chmod u+x delete270x360images

Ora per usarlo nel terminale, digita quanto segue e poi premi invio.

./delete270x360images

Attendi il completamento.

    
risposta data 18.04.2017 - 18:07
fonte

Leggi altre domande sui tag