Come rinominare in massa in OS X con i miei requisiti

5

Esiste un'utilità che può rinominare i filtri in più sottocartelle e quindi rinominare i file all'interno in modo sequenziale?

es. Seleziono my-pictures e farà la sua magia e rinominerò in sequenza tutti i file in tutte le sottocartelle. Per ciascuna nuova sottocartella, la numerazione si reimposta su 1.

vecchia struttura

my-pictures (parent folder)
-- folder1
---- in-costa-rica.png
---- swimming-at-beach-costa-rica.png
-- panama-folder
---- panama-canal.png
---- with-witch-doctor.png

desiderata / nuova struttura

my-pictures (parent folder)
-- folder1
---- 0001.png
---- 0002.png
-- panama-folder
---- 0001.png
---- 0002.png
    
posta mrjayviper 02.01.2014 - 09:14
fonte

2 risposte

6

Le seguenti linee in Terminale dovrebbero fare il trucco

for dir in my-pictures/*; do
    if [[ -d "$dir" ]]; then
        cd "$dir"
        i=0
        for file in *; do
            echo mv "$file" $(printf "%04d" $i).png
            (( i=i+1 ))
        done
        cd -
    fi
done

Ho inserito un'istruzione echo per sopprimere l'esecuzione in modo da poterla testare prima. Se l'output sembra ok, basta rimuovere echo e rieseguire.

Si presume che non ci siano più di 1000 file in ciascuna sottocartella, nessuno dei file è già stato rinominato e che tutti sono immagini PNG.

Per impostazione predefinita, i file sono ordinati per nome. Se desideri ordinare per data, sostituisci la seconda istruzione for con

for file in $(ls -t); do
    
risposta data 02.01.2014 - 09:48
fonte
0

Se riesci a selezionare le singole sottocartelle, è disponibile un'app per . Potrebbe non fare esattamente ciò che desideri ma potrebbe comunque risparmiare un sacco di tempo.

    
risposta data 02.01.2014 - 21:03
fonte

Leggi altre domande sui tag