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.
If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/
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.
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.
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:
This is useful if you have a collection of files in folders (for example, a bunch of .zip files that are contained in folders) and you want to move them all to a common folder.
Takes filenames and directory names and replace space to '_'.
It helps you save a lot of writing :-)
Jan Nelson from Grockit came up with this for us when we needed to rename all of our fixtures.
cd into the directory that contains the file.
this is just the usual move command but shortcut'd.
say you wanted to move a photo img1.png from ~/photos/holidayphotos into the parent directory which is ~/photos
command would be:
~/photos/holidayphotos$ mv img1.png ..
I use Ubuntu so this'll work in debian but not sure what else.
This is my first attempt at converting all HTML files to UTF-8 file encoding, including all subfolders.
Theres probably a much more compact way to do it, but I'm quite proud of it with my windows background ;)
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.
or, to process a single directory:
for f in *; do mv $f `echo $f |tr '[:upper:]' '[:lower:]'`; done
or, for a single directory:
for f in *.c; do mv $f "`basename $f .c`".C; done
Subtitles' file names contain S04E01, S04E02, ... S04E12 and end with ".smi".
Videos' file names contain S04E01, S04E02, ... S04E12 and end with ".avi".
You can change the patterns by changing `ls *S04E$jj*.smi` and `ls *S04E$jj*.avi` parts.
You can change the number of starting and ending file by changing `seq -f "%02.0f" 1 12` part.