By Matt Butcher
mkdir: Creating multiple subdirectories in one command
Submitted by matt on Thu, 2010-04-15 15:24
Often times, I want to create a full directory structure, and I'd like to do it with just one call to mkdir. That is, I want to create a root directory and multiple subdirectories all at once. Here's how to do this.
mkdir -p myProject/{src,doc,tools,db}The above creates the top-level directory myProject, along with all of the subdirectories (myProject/src, myProject/doc, etc.). How does it work? There are two things of note about the command above:
- The
-pflag: This tellsmkdirto create any leading directories that do not already exist. Effectively, it makes sure thatmyProjectgets created before creatingmyProject/src. - The
{}lists: The technical name for these is "brace expansion lists". Basically, the shell interprets this as a list of items that should be appended individually to the preceding path. Thus,a/{b,c}is expanded intoa/b a/c.
You can nest brace expansion lists. That means you can create more complex sets of subdirectories like this:
mkdir -p myProject/{src,doc/{api,system},tools,db}Notice that this creates two directories inside of doc/.








Great article you wrote,
Great article you wrote, really inspired me! I wish I can be like you :)
buy larganine online
Post new comment