Replace underscores with spaces in filenames and dirnames, recursively into subdirs.

find . -exec rename 's/_/\ /g' {} +
Everyone wants to take spaces out of filenames. Forget that. I want to put them back in. We've got tools and filesystems that support spaces, they look better, so I'm going to use them. Because of how find works I find I need to run this multiple times, if it's renaming subdirs. But it can be re-run without issues. I got this version of the command from a comment in this underscore-generating command. All I did was change the regex.
Sample Output

Changes into ...

File Name CD1.flac
File Name CD1.flac
File Name CD1.flac

By: KlfJoat
2014-05-05 02:47:19

What Others Think

Add -depth to find and it will handle subdirs correctly so only one run is needed. find . -depth -exec rename 's/_/\ /g' {} +
kaistian · 389 weeks and 1 day ago
This code will make my file management as smooth as butter. Great job. Fullerton Bathroom Remodeling
CarlCuperstone · 7 weeks and 6 days ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this? is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.


Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: