music
OSdata.com: programming text book 

OSdata.com

mkdir

summary

    This subchapter looks at mkdir, a UNIX (and Linux) command.

    mkdir is used to make a directory.

free book on UNIX/Linux System Administration

Teach Yourself UNIX/Linux System Administration and Shell Programming

free computer programming text book project

table of contents
If you like the idea of this project,
then please donate some money.
more information on donating

Google

mkdir

    This subchapter looks at mkdir, a UNIX (and Linux) command.

    mkdir is used to make a directory.

make a directory

    Use the mkdir command to make a new directory (folder).

    $ mkdir testdir
    admins-power-mac-g5:~ admin$

    The example includes an extended prompt that shows the current working directory. Using the ls command will confirm that the directory now exists in the current working directory.

common errors

    mkdir will fail if the directory already exists.

    mkdir will fail if a file with the same name already exists.

multiple directories

    You can name multiple directories with the mkdir command. Simply list each of the new diretcories after the mkdir with a space character between each directory name.

    $ mkdir directory1 directory2 directory3
    admins-power-mac-g5:~ admin$

create with permissions

    Use the -m option to create a directory with specific permissions. The old school version of the -m switch used octal permissions.

    The permission chocies are the same as with the chmod command. Replace mode (a=rwx in the following example) with an appropriate mode argument. In the following example, themode is a=rwx, which would give all users read, write, and execute permissions.

    $ mkdir -m mode directory1 directory2 directory3
    admins-power-mac-g5:~ admin$

    This option is often used in shell scripts to lock down temporary directories.

use a path

    All of the previous examples involved the current working directory. You can use cd to move to a new directory and create a directory there. Or you can give an entire path name to a specific directory, using either a relative or absolute path name to create the directory anywhere in the file system.

    $ mkdir directory1/directory2/directory3
    admins-power-mac-g5:~ admin$

common error

    The most common error in using mkdir with a path is one or more of the intervening directories haven’t been made yet. mkdir will fail.

creating parent directories

    There is a solution to this problem. You can use the -p option to create directories along the path. You can therefore, create a series of parent and child directories all at once.

    If you use the -p option and the directory already exists, the mkdir command will continue on through your path and create new directories as needed down to the last one you list.

    $ mkdir -p directory1/directory2/directory3
    admins-power-mac-g5:~ admin$

    Intermediate directories are created with the permission bits of rwxrwxrwx (0777) as modified by the current umask, plus the write and search permission for the owner.

view directories made

    You can use the -v to get a list of the directories created. This is most often used with the -p option, but you can use it by itself.

    $ mkdir -v directory1/directory2/directory3
    $

    $ mkdir -pv directory1/directory2/directory3
    $

    The -v option is considered nonstandard and should not be used in shell scripts.

spaces in names

    To create a directory with space in the directory name, you need to use quoting for the entire name so that the shell treats it as a single name rather than a series of individual directory names separeted by spaces.

    $ mkdir "directory name"
    $

    While it is common to use spaces in file and directory names in graphic user interfaces (such as Macintosh, OS/2, and Windows, as well as Gnome or KDE), this may cause failure with older scripts or programs. Some programs may convert the spaces in a directory name into %20, such as converting "Name with spaces" into "Name%20with%20spaces". This might cause confusion or failure.

long options

    The long options are:

-m   --mode=MODE
-p   --parents
-v   -verbose
-Z   --context=CONTEXT
    --help
    --version

advanced information

    The following items are advanced topics. They are included here so that you can easily find them when needed.

scripting mkdir

    If you create a directory in a script, you will want to check first to see if the script actually exists. The following line of code will create a directory called tmp

    $ test ! -d $HOME/tmp && mkdir $HOME/tmp

    This line relies on the short circuit evaluation by the test statement. The first part of the test checks to see if the specified directory does not exist. If the specified directory already exists, the test fails and further evaluation stops. If the test passes, then the mkdir command is run.

create an entire directory tree

    You can create an entire directory tree all at once. The example will create the following diretcory tree (which will be confirmed with ls commands):

                 example
                   |
   --------------------------------
   |               |              |
  docs           notes           src
                                  |
                               applet
                                  |
            ------------------------------------------
            |             |             |            |
            css          html      javascript       php

    $ mkdir -p example/{src/applet/{css,html,php,javascript},docs,notes}
    $ ls example
    docs    notes   src
    $ ls example/src
    applet
    $ ls example/src/applet
    css      html     javascript     php
    $

    The {} curly braces are used to create directories at the same level and the directories at the same level are separated by the , comma.

create a directory and change to it

    You can use the following function to both mkdir a new directory and cd to the newly created directory, all in one command.

    $ function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }
    $

    This function will work even if the directory name has spaces.

various operating systems

    The mkdir command appears in the Linix, Mac OS X, OS/2, PC-DOS (also called MS-DOS), UNIX, and Windows operating systems. It also appears in the PHP programming language. In OS/2, PC-DOS, and Windows, the command can be abbreviated md.

set security context

    When running SELinux, you can use the -Z or --context switch to set the security context. You must give the full context as user:role:type.

    An example from the CentOS forum:

    $ mkdir --context=system_u:object_r:httpd_sys_content_t:s0 /var/www/example.org
    $

history

    The mkdir command appeared in Version 1 of AT&T UNIX. In early versions of UNIX, the mkdir command had to be setuid root because the kernel did not yet have a mkdir syscall. The mkdir command made a directory with the mknod syscall, followed by linking in the . and .. directories.

    The mkdir syscall originated in 4.2 BSD and was added to System V in Release 3.0.

other

    On November 8, 2010, Ramesh Natarajan named this the number 35 most frequently used UNIX/Linux command at this web page 50 Most Frequently Used UNIX / Linux Commands (With Examples).


comments, suggestions, corrections, criticisms

please contact us

your name:
email address:
phone number:
message:

free music player coding example

    Coding example: I am making heavily documented and explained open source code for a method to play music for free — almost any song, no subscription fees, no download costs, no advertisements, all completely legal. This is done by building a front-end to YouTube (which checks the copyright permissions for you).

    View music player in action: www.musicinpublic.com/.

    Create your own copy from the original source code/ (presented for learning programming).


return to table of contents
free downloadable college text book
free downloadable system administrator and shell programming book

view text book
HTML file

Because I no longer have the computer and software to make PDFs, the book is available as an HTML file, which you can convert into a PDF.

previous page next page
previous page next page

free book on UNIX/Linux System Administration

Teach Yourself UNIX/Linux System Administration and Shell Programming

free computer programming text book project

Building a free downloadable text book on computer programming for university, college, community college, and high school classes in computer programming.

If you like the idea of this project,
then please donate some money.

send donations to:
Milo
PO Box 1361
Tustin, California 92781

Supporting the entire project:

    If you have a business or organization that can support the entire cost of this project, please contact Pr Ntr Kmt (my church)

more information on donating

Some or all of the material on this web page appears in the
free downloadable college text book on computer programming.


Google


Made with Macintosh

    This web site handcrafted on Macintosh computers using Tom Bender’s Tex-Edit Plus and served using FreeBSD .

Viewable With Any Browser


    †UNIX used as a generic term unless specifically used as a trademark (such as in the phrase “UNIX certified”). UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Ltd.

    Names and logos of various OSs are trademarks of their respective owners.

    Copyright © 2012, 2013, 2014 Milo

    Created: February 14, 2012

    Last Updated: February 2, 2014


return to table of contents
free downloadable college text book
free downloadable system administrator and shell programming book

previous page next page
previous page next page