OK, so I was downloading a flock of files from a particular website, and it insisted on using capital letters for filename extensions (.PDF, in this case). Of course, capital letters are anathema to any old-school Unix guy, so I found myself with directory full of files with mixed-case names - what to do? Well, this was a job for a one-shot, on-the-fly script entered from the command line. The only "unusual" command I used was basename(1), which (when given a filename and a suffix) returns everything before said suffix. So, from the command line:
wmorgan@galileo:~/docs/flyers$ ls | while read filen
>mv $file `basename $filen .PDF`.pdf
Et voila'! A directory with dozens of files named "whatever.PDF" are now named "whatever.pdf". I could have used tr(1) to translate from upper- to lower-case, but that would have been a bit more expensive; tr(1) checks every character in the input string, while basename(1) allows us to effectively ignore the case of everything before the specified suffix...