Modificare ricorsivamente l’estensione dei file

Ecco un altro simpatico oneliner di utilità generale, ogni tanto mi capita di dover modificare tutte le estensioni di un certo tipo, per esempio .jpg, in un altro tipo, per esempio .png.

for f in *.jpg; do mv $f `basename $f .jpg`.png; done

Oppure, usando il fidato find (che non so perchè, ma amo tantissimo! ^_^:

find ./ -name '*.jpg' -exec sh -c 'mv {} `basename "{}" .jpg`.png' \;

Da notare l’esecuzione della shell col comando di mv. (occhio che le virgolette intorno al comando basename non sono apici singoli, ma backtick, un modo per dire alla shell: “esegui questo comando e non prenderlo come una stringa”.
Il backtick può essere trovato sulle tastiere italiane con altgr + ‘, oppure alt + 96, mentre nelle tastiere mac è alt + 9 (anche detto options + 9)

Annunci

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: