commandlinefu.com is the place to record those command-line gems that you return to again and again.
You can sign-in using OpenID credentials, or register a traditional username and password.
Subscribe to the feed for:
easier way to recursively change files to lowercase using rename instead
There are 8 alternatives - vote for the best!
The simplest way I know.
or, to process a single directory:
for f in *; do mv $f `echo $f |tr '[:upper:]' '[:lower:]'`; done
This will convert filenames from uppercase to lowercase. I find this useful after downloading images from my digital camera. This works for English, but other languages may need something slightly more complex like this:
for i in *; do mv "$i" "$(echo $i|tr [:upper:] [:lower:])"; done
Also, the quote marks aren't necessary if your filenames don't contain spaces.
Example of zsh globing, glob qualifier, and substitution:
-Q state that the parameter will contain a glob qualifier.
(**/)(*) is recursive
(.) is our glob qualifier, with states the match is a file "."
The first parameter $1, is then substituted with $2 but with lowercasing '(L)' ... a (U) would of course be from lower to upper.
If you can do better, submit your command here.
You must be signed in to comment.