Hide

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again.

Delete that bloated snippets file you've been using and share your personal repository with the world. 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.


Get involved!

You can sign-in using OpenID credentials, or register a traditional username and password.

First-time OpenID users will be automatically assigned a username which can be changed after signing in.

Universal configuration monitoring and system of record for IT.
Hide

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.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

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:

Hide

News

May 19, 2015 - A Look At The New Commandlinefu
I've put together a short writeup on what kind of newness you can expect from the next iteration of clfu. Check it out here.
March 2, 2015 - New Management
I'm Jon, I'll be maintaining and improving clfu. Thanks to David for building such a great resource!
Hide

Top Tags

Hide

Functions

Psst. Open beta.

Wow, didn't really expect you to read this far down. The latest iteration of the site is in open beta. It's a gentle open beta-- not in prime-time just yet. It's being hosted over at UpGuard (link) and you are more than welcome to give it a shot. Couple things:

  • » The open beta is running a copy of the database that will not carry over to the final version. Don't post anything you don't mind losing.
  • » If you wish to use your user account, you will probably need to reset your password.
Your feedback is appreciated via the form on the beta page. Thanks! -Jon & CLFU Team

Commands using rename from sorted by
Terminal - Commands using rename - 65 results
rename -v 's/.*[s,S](\d{2}).*[e,E](\d{2}).*\.avi/SHOWNAME\ S$1E$2.avi/' poorly.named.file.s01e01.avi
2009-09-29 16:39:57
User: Karakh
Functions: rename
18

Replace 'SHOWNAME' with the name of the TV show.

Add -n to test the command without renaming files.

Check the 'sample output'.

rename -v 's/ /_/g' *
rename 's/^/prefix/' *
2009-08-14 03:26:45
User: lingo
Functions: rename
12

Best to try first with -n flag, to preview

exiv2 rename *.jpg
find -name '*oldname*' -print0 | xargs -0 rename 's/oldname/newname/'
2009-07-27 00:44:06
Functions: find rename xargs
0

This is better than doing a "for `find ...`; do ...; done", if any of the returned filenames have a space in them, it gets mangled. This should be able to handle any files.

Of course, this only works if you have rename installed on your system, so it's not a very portable command.

rename 'y/ /_/' *
2009-06-27 22:20:47
User: signal9
Functions: rename
Tags: file rename
57

This command will replace all the spaces in all the filenames of the current directory with underscores. There are other commands that do this here, but this one is the easiest and shortest.

rename 's/.*/[it]$&/' *.pdf
find ./ -name '*.JPG' -type f -execdir rename -f 'y/A-Z/a-z/' {} \+
2009-03-27 13:49:56
User: pronoiaque
Functions: find rename
2

Change files case, without modify directories, recursively.

... fucking vfat

ls -1 | rename 's/\ /_/'
2009-03-17 17:33:41
Functions: ls rename
4

Substitute spaces in filename with underscore, it work on the first space encountered.

ls -1 | grep " " | awk '{printf("mv \"%s\" ",$0); gsub(/ /,"_",$0); printf("%s\n",$0)}' | sh # rename filenames: spaces to "_"
2009-03-15 18:42:43
User: mpb
Functions: awk grep ls rename sh
2

This command converts filenames with embedded spaces in the current directory replacing spaces with the underscore ("_") character.

rename .JPG .jpg *.JPG
2009-03-10 15:07:24
User: psytek
Functions: rename
3

This will change all files ending in .JPG to .jpg and will work with any file extension

rename 'y/A-Z/a-z/' *
find ./ -name '*' -exec rename 's/\s+/_/g' {} \;
rename .oldextension .newextension *.oldextension
2009-02-10 16:58:05
User: haithamg
Functions: rename
12

Changing a file extension to a new one for all files in a directory.

rename 's/foo/bar/g' *
2009-02-06 06:45:41
User: terrasect
Functions: rename
10

Useful when you want to quickly rename a bunch of files.