Ho una directory e alcune estensioni dei file sono in maiuscolo (.JPG) invece che in minuscolo.
Voglio assicurarmi che ogni file abbia .jpg come estensione. Come lo farei da un prompt della shell?
Ho una directory e alcune estensioni dei file sono in maiuscolo (.JPG) invece che in minuscolo.
Voglio assicurarmi che ogni file abbia .jpg come estensione. Come lo farei da un prompt della shell?
Risposte:
Utilizzando l' espansione dei parametri della shell :
for f in *.JPG; do
mv "${f}" "${f%%.JPG}.jpg"
done
I "personaggi si prenderanno cura dei nomi dei file contenenti spazi, come spesso fanno le fotografie.
/path/to/*.JPG. Puoi inviare la tua risposta, ovviamente :)
Se puoi usare strumenti esterni (non solo bash), controlla il renamecomando!
rename .JPG .jpg *
Fa renameparte di util-linux.
perlaccetta diversi argomenti per fare la stessa cosa.
Vorrei suggerire di dare un'occhiata al mmvcomando. È adatto esattamente per questo tipo di attività. Nel tuo scenario sarebbe:
#> mmv "*.JPG" "#1.jpg"
La pagina man è piena di esempi, quindi non ci vuole tempo per abituarsi.
Sui sistemi Debian può essere installato con:
#> aptitude install mmv
se non hai spazi nei nomi dei file:
for f in *.JPG; do mv $f `echo $f | sed 's/JPG$/jpg/'`; done
mv.