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.


If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/

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.

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

2011-03-12 - Confoo 2011 presentation
Slides are available from the commandlinefu presentation at Confoo 2011: http://presentations.codeinthehole.com/confoo2011/
2011-01-04 - Moderation now required for new commands
To try and put and end to the spamming, new commands require moderation before they will appear on the site.
2010-12-27 - Apologies for not banning the trolls sooner
Have been away from the interwebs over Christmas. Will be more vigilant henceforth.
2010-09-24 - OAuth and pagination problems fixed
Apologies for the delay in getting Twitter's OAuth supported. Annoying pagination gremlin also fixed.
Hide

Tags

Hide

Functions

Commands tagged mkdir from sorted by
Terminal - Commands tagged mkdir - 14 results
function mkdcd () { mkdir "$1" && cd "$1" }
rmdir -p new/directory/path
2013-05-21 12:34:55
User: r3tro
Functions: rmdir
Tags: mkdir rmdir
0

Removes all directories on given path, working from right to left, and stops when reaching a non-empty directory

Counterpart of

mkdir -p new/directory/path

Shortcut (must be issues as next command immediately after mkdir):

^mk^rm

( see http://www.commandlinefu.com/commands/view/19/runs-previous-command-but-replacing )

mkdir -p /path/to/folder.d; \cd $_
alias md='mkdir -p'; alias rd='rmdir'; mcd () { mkdir "$@" && cd "$_"; }
2012-08-12 12:54:51
User: expelledboy
Functions: alias cd mcd mkdir
0

I realise that this is just a reiteration of another entry (regardless of whether I came up with all this all by myself), but I would like present my additional alias' in context as a method of managing your directories. Rather convenient.

function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }
2012-06-26 17:19:16
User: ankush108
Functions: cd eval mkdir
Tags: cd mkdir
0

Creates a directory and then cds into it directly

for i in `seq 100`; do mkdir f${i}; touch ./f${i}/myfile$i ;done
2011-09-29 01:03:46
Functions: mkdir touch
Tags: seq mkdir touch
0

creates 100 directories f(1-100) with a file in each matched to the directory (/f1/myfile1, .. /f98/myfile98,/f99/myfile99/,/f100/myfile100,etc )

mkdir /home/foo/doc/bar && cd $_
2011-08-12 11:29:19
User: kzh
Functions: cd mkdir
43

The biggest advantage of this over the functions is that it is portable.

take() { mkdir -p $1 && cd $1; }
2011-04-06 15:22:13
Functions: cd mkdir
Tags: cd mkdir
1

This creates a bash function `take` that you can call with the name of the directory as the first parameter. Add the function to ~/.bashrc to have it available anytime.

mydir(){mkdir -p $1 && cd $1}
2011-04-06 15:03:33
User: m0jumb0
Functions: cd
Tags: cd mkdir
0

Make it a reusable function and add the -p flag to mkdir to create directories recursively

usage: mydir some/dir/to/create

Dir=dirname; mkdir $Dir && cd $Dir
2011-04-06 14:53:57
User: saibbot
Functions: cd mkdir
Tags: cd mkdir
-7

Create a directory called "dirname" and navigate into it.

files -type f | xargs -n100 | while read l; do mkdir $((++f)); cp $l $f; done
2011-02-15 23:15:16
User: flatcap
Functions: cp mkdir read xargs
-2

Take a folder full of files and split it into smaller folders containing a maximum number of files. In this case, 100 files per directory.

find creates the list of files

xargs breaks up the list into groups of 100

for each group, create a directory and copy in the files

Note: This command won't work if there is whitespace in the filenames (but then again, neither do the alternative commands :-)

echo 'mkcd() { mkdir -p "$@" && cd "$_"; }' >> ~/.bashrc
2010-01-13 09:37:56
User: phaidros
Functions: cd echo mkdir
-4

combines mkdir and cd

added quotes around $_, thanx to flatcap!

md () { mkdir -p "$@" && cd "$@"; }
2009-09-24 16:09:19
User: drewk
Functions: cd mkdir
28

How often do you make a directory (or series of directories) and then change into it to do whatever? 99% of the time that is what I do.

This BASH function 'md' will make the directory path then immediately change to the new directory. By using the 'mkdir -p' switch, the intermediate directories are created as well if they do not exist.

mkdir $(date +%Y%m%d)
2009-04-25 14:16:45
User: thebodzio
Functions: date mkdir
Tags: alias date mkdir
11

Not a discovery but a useful one nontheless.

In the above example date format is 'yyyymmdd'. For other possible formats see 'man date'.

This command can be also very convenient when aliased to some meaningful name:

alias mkdd='mkdir $(date +%Y%m%d)'