rename command
Yesterday, the new Bad Bad Hats record was released, so I downloaded it from Bandcamp!
cd ~/Music/BadBadHats
mkdir Walkman
cd !$
unzip -l ~/Downloads/Bad\ Bad\ Hats\ -\ Walkman\ \(pre-order\).zip
Don't mind that pre-order bit, it's the full record. Let's unzip it!
❯ unzip ~/Downloads/Bad\ Bad\ Hats\ -\ Walkman\ \(pre-order\).zip
Archive: /home/tim/Downloads/Bad Bad Hats - Walkman (pre-order).zip
extracting: Bad Bad Hats - Walkman - 01 Walkman.flac
extracting: Bad Bad Hats - Walkman - 02 Detroit Basketball.flac
extracting: Bad Bad Hats - Walkman - 03 Always On Time.flac
extracting: Bad Bad Hats - Walkman - 04 Gloria Love.flac
extracting: Bad Bad Hats - Walkman - 05 Priority.flac
extracting: Bad Bad Hats - Walkman - 06 Quarter Past.flac
extracting: Bad Bad Hats - Walkman - 07 Milky Way.flac
extracting: Bad Bad Hats - Walkman - 08 Only Static.flac
extracting: Bad Bad Hats - Walkman - 09 Awkward Phase.flac
extracting: Bad Bad Hats - Walkman - 10 Year Of The Crab.flac
extracting: cover.jpg
Hooray! But I like to rename the files to be just the track number and title (the band name and album name are in the parent directories).
Debian supplies multiple rename commands. I like the Perl one originally written by Larry Wall some thirty years ago.
sudo apt install rename
It uses regular expressions to manipulate the filenames, so to just chop off the stuff at the beginning, we could write 's/^Bad Bad Hats - Walkman - //'
. It has a -n
option for a dry run, so we can see what it would do without actually doing it.
❯ rename -n 's/^Bad Bad Hats - Walkman - //' *.flac
rename(Bad Bad Hats - Walkman - 01 Walkman.flac, 01 Walkman.flac)
rename(Bad Bad Hats - Walkman - 02 Detroit Basketball.flac, 02 Detroit Basketball.flac)
rename(Bad Bad Hats - Walkman - 03 Always On Time.flac, 03 Always On Time.flac)
rename(Bad Bad Hats - Walkman - 04 Gloria Love.flac, 04 Gloria Love.flac)
rename(Bad Bad Hats - Walkman - 05 Priority.flac, 05 Priority.flac)
rename(Bad Bad Hats - Walkman - 06 Quarter Past.flac, 06 Quarter Past.flac)
rename(Bad Bad Hats - Walkman - 07 Milky Way.flac, 07 Milky Way.flac)
rename(Bad Bad Hats - Walkman - 08 Only Static.flac, 08 Only Static.flac)
rename(Bad Bad Hats - Walkman - 09 Awkward Phase.flac, 09 Awkward Phase.flac)
rename(Bad Bad Hats - Walkman - 10 Year Of The Crab.flac, 10 Year Of The Crab.flac)
That looks right, let her rip!
❯ rename 's/^Bad Bad Hats - Walkman - //' *.flac
❯ ls
'01 Walkman.flac' '07 Milky Way.flac'
'02 Detroit Basketball.flac' '08 Only Static.flac'
'03 Always On Time.flac' '09 Awkward Phase.flac'
'04 Gloria Love.flac' '10 Year Of The Crab.flac'
'05 Priority.flac' cover.jpg
'06 Quarter Past.flac'
Supergood! Let's fire it up in parole!
