Search code examples
bashubuntubatch-rename

mmv not rename files .JPG to .jpg


I have many files like this:

13040-3BLK1.JPG  13040-3NAV11.JPG  13040-50NAV11.JPG  13040-60NAV11.JPG  13040-LNAV1.JPG  13040-MDGR1.JPG  15026-3PNK1.JPG  94010-4NAV1.JPG    KH00010-LSLV1.JPG  KH00030-SWHT1.JPG 
13040-3NAV1.JPG  13040-50NAV1.JPG  13040-60NAV1.JPG   13040-LBLK1.JPG    13040-MBLK1.JPG  13100-MNAV1.JPG  15140_3NAV1.JPG  KH00010-LNAV1.JPG  KH00010-MRBL1.JPG  MU00070-LGOL1.JPG

I want to change the .JPG files into .jpg files (uppercase to lowercase). I run this command to do that:

mmv '*.JPG' '#1.jpg'

But nothing changes. However when I run this command:

mmv -n '*.JPG' '#1.jpg'

It displays the right changes:

13040-3BLK1.JPG -> 13040-3BLK1.jpg
13040-3NAV1.JPG -> 13040-3NAV1.jpg
13040-3NAV11.JPG -> 13040-3NAV11.jpg
13040-50NAV1.JPG -> 13040-50NAV1.jpg
13040-50NAV11.JPG -> 13040-50NAV11.jpg
13040-60NAV1.JPG -> 13040-60NAV1.jpg
13040-60NAV11.JPG -> 13040-60NAV11.jpg
13040-LBLK1.JPG -> 13040-LBLK1.jpg
13040-LNAV1.JPG -> 13040-LNAV1.jpg
13040-MBLK1.JPG -> 13040-MBLK1.jpg
13040-MDGR1.JPG -> 13040-MDGR1.jpg
13100-MNAV1.JPG -> 13100-MNAV1.jpg
15026-3PNK1.JPG -> 15026-3PNK1.jpg
15140_3NAV1.JPG -> 15140_3NAV1.jpg
94010-4NAV1.JPG -> 94010-4NAV1.jpg
KH00010-LNAV1.JPG -> KH00010-LNAV1.jpg
KH00010-LSLV1.JPG -> KH00010-LSLV1.jpg
KH00010-MRBL1.JPG -> KH00010-MRBL1.jpg
KH00030-SWHT1.JPG -> KH00030-SWHT1.jpg
MU00070-LGOL1.JPG -> MU00070-LGOL1.jpg

Why the files are not renamed ? And how can I rename them? With or without the package mmv.


Solution

  • If it's a Windows case-insensitivity issue - Two-step loop?

    for f in *.JPG
    do mv "$f" tmp
       mv tmp "${f%.JPG}.jpg"
    done