## 7.8. Making Directories Made Easier

Earlier we told you that you should have lots of directories. Experienced Unix users are creating new directories all the time. How do you make a directory?

It's easy. Use the mkdir command, followed by the name of your new directory:

>     % mkdir directory

This creates the new directory you want. It doesn't necessarily have to be in your current directory. For example:

>     % cd /home/los/mikel
>     % mkdir /src/books/power/articles/files

The only requirements are:

- The parent of the directory you want to create must exist (in this case, /src/books/power/articles).

- You must have write access to the parent directory.

What if the parent directory doesn't already exist? Assume, for example, that /src/books already exists, but the power and articles directories do not. You can make these "by hand," or on many Unix systems you can add the -p (parents) option:

>     % mkdir -p /src/books/power/articles/files

This tells mkdir to create all the intermediate directories that are needed. So the previous command creates three directories:

>     /src/books/power
>     /src/books/power/articles
>     /src/books/power/articles/files

If your mkdir doesn't have -p, you can use history substitution :

>     % mkdir /src/books/power
>     % !!/articles
>     mkdir /src/books/power/articles
>     % !!/files
>     mkdir /src/books/power/articles/files

On some mkdirs, you can also supply the file protection mode to be assigned to the directory. (By default, the file protection mode is derived from your umask.) To do so, use the -m option. For example:

>     % mkdir -m 755 /src/books/power/articles/files

This creates the directory with access mode 755, which allows the owner to do anything with the directory. Note that this must be a numeric mode.

-- ML

Copyright © 2003 O'Reilly & Associates. All rights reserved.