Developer(s) | Various open-source and commercial developers |
---|---|
Written in | MS-DOS:
x86 assembly language Plan 9, ReactOS: C TRIPOS: BCPL |
Operating system | Unix, Unix-like, Plan 9, Inferno, DOS, MSX-DOS, FlexOS, OS/2, Windows, ReactOS, KolibriOS |
Platform | Cross-platform |
Type | Command |
License |
GNU
coreutils:
GPLv3+ MS-DOS, Plan 9: MIT FreeDOS: GPLv2+ ReactOS: GPLv2 |
The mkdir
(make directory)
command in the
Unix,
DOS,
DR
FlexOS,
[1]
IBM
OS/2,
[2]
Microsoft Windows, and
ReactOS
[3]
operating systems is used to make a new
directory. It is also available in the
EFI shell
[4] and in the
PHP
scripting language. In DOS, OS/2, Windows and ReactOS, the command is often abbreviated to md
.
The command is analogous to the
Stratus
OpenVOS create_dir
command.
[5]
MetaComCo
TRIPOS and
AmigaDOS provide a similar MakeDir
command to create new directories.
[6]
[7] The
numerical computing environments
MATLAB and
GNU Octave include an mkdir
function with similar functionality.
[8]
[9]
In early versions of Unix (
4.1BSD and early versions of
System V), this command had to be
setuid
root as the
kernel did not have an mkdir
syscall. Instead, it made the directory with
mknod
and linked in the .
and ..
directory entries manually. The command is available in
MS-DOS versions 2 and later.
[10]
Digital Research
DR DOS 6.0
[11] and
Datalight
ROM-DOS
[12] also include an implementation of the md
and mkdir
commands.
The version of mkdir
bundled in
GNU
coreutils was written by David MacKenzie.
[13]
It is also available in the
open source MS-DOS
emulator
DOSBox and in
KolibriOS.
[14]
Normal usage is as straightforward as follows:
mkdir name_of_directory
where name_of_directory
is the name of the directory one wants to create. When typed as above (i.e. normal usage), the new directory would be created within the current directory. On Unix and Windows (with Command extensions enabled,
[15] the default
[16]), multiple directories can be specified, and mkdir
will try to create all of them.
On Unix-like operating systems, mkdir
takes options. The options are:
-p (--parents)
: parents or path, will also create all directories leading up to the given directory that do not exist already. For example, mkdir -p a/b
will create directory a
if it doesn't exist, then will create directory b
inside directory a
. If the given directory already exists, ignore the error.-m (--mode)
: mode, specify the
octal permissions of directories created by mkdir
.-p
is most often used when using mkdir
to build up complex directory hierarchies, in case a necessary directory is missing or already there. -m
is commonly used to lock down temporary directories used by
shell scripts.
An example of -p
in action is:
mkdir -p /tmp/a/b/c
If /tmp/a
exists but /tmp/a/b
does not, mkdir
will create /tmp/a/b
before creating /tmp/a/b/c
.
And an even more powerful command, creating a full tree at once (this however is a Shell extension, nothing mkdir does itself):
mkdir -p tmpdir/{trunk/sources/{includes,docs},branches,tags}
If one is using variables with mkdir in a bash script, POSIX `special' built-in command 'eval' would serve its purpose.
DOMAIN_NAME=includes,docs
eval "mkdir -p tmpdir/{trunk/sources/{${DOMAIN_NAME}},branches,tags}"
This will create:
tmpdir
________|______
| | |
branches tags trunk
|
sources
____|_____
| |
includes docs
Developer(s) | Various open-source and commercial developers |
---|---|
Written in | MS-DOS:
x86 assembly language Plan 9, ReactOS: C TRIPOS: BCPL |
Operating system | Unix, Unix-like, Plan 9, Inferno, DOS, MSX-DOS, FlexOS, OS/2, Windows, ReactOS, KolibriOS |
Platform | Cross-platform |
Type | Command |
License |
GNU
coreutils:
GPLv3+ MS-DOS, Plan 9: MIT FreeDOS: GPLv2+ ReactOS: GPLv2 |
The mkdir
(make directory)
command in the
Unix,
DOS,
DR
FlexOS,
[1]
IBM
OS/2,
[2]
Microsoft Windows, and
ReactOS
[3]
operating systems is used to make a new
directory. It is also available in the
EFI shell
[4] and in the
PHP
scripting language. In DOS, OS/2, Windows and ReactOS, the command is often abbreviated to md
.
The command is analogous to the
Stratus
OpenVOS create_dir
command.
[5]
MetaComCo
TRIPOS and
AmigaDOS provide a similar MakeDir
command to create new directories.
[6]
[7] The
numerical computing environments
MATLAB and
GNU Octave include an mkdir
function with similar functionality.
[8]
[9]
In early versions of Unix (
4.1BSD and early versions of
System V), this command had to be
setuid
root as the
kernel did not have an mkdir
syscall. Instead, it made the directory with
mknod
and linked in the .
and ..
directory entries manually. The command is available in
MS-DOS versions 2 and later.
[10]
Digital Research
DR DOS 6.0
[11] and
Datalight
ROM-DOS
[12] also include an implementation of the md
and mkdir
commands.
The version of mkdir
bundled in
GNU
coreutils was written by David MacKenzie.
[13]
It is also available in the
open source MS-DOS
emulator
DOSBox and in
KolibriOS.
[14]
Normal usage is as straightforward as follows:
mkdir name_of_directory
where name_of_directory
is the name of the directory one wants to create. When typed as above (i.e. normal usage), the new directory would be created within the current directory. On Unix and Windows (with Command extensions enabled,
[15] the default
[16]), multiple directories can be specified, and mkdir
will try to create all of them.
On Unix-like operating systems, mkdir
takes options. The options are:
-p (--parents)
: parents or path, will also create all directories leading up to the given directory that do not exist already. For example, mkdir -p a/b
will create directory a
if it doesn't exist, then will create directory b
inside directory a
. If the given directory already exists, ignore the error.-m (--mode)
: mode, specify the
octal permissions of directories created by mkdir
.-p
is most often used when using mkdir
to build up complex directory hierarchies, in case a necessary directory is missing or already there. -m
is commonly used to lock down temporary directories used by
shell scripts.
An example of -p
in action is:
mkdir -p /tmp/a/b/c
If /tmp/a
exists but /tmp/a/b
does not, mkdir
will create /tmp/a/b
before creating /tmp/a/b/c
.
And an even more powerful command, creating a full tree at once (this however is a Shell extension, nothing mkdir does itself):
mkdir -p tmpdir/{trunk/sources/{includes,docs},branches,tags}
If one is using variables with mkdir in a bash script, POSIX `special' built-in command 'eval' would serve its purpose.
DOMAIN_NAME=includes,docs
eval "mkdir -p tmpdir/{trunk/sources/{${DOMAIN_NAME}},branches,tags}"
This will create:
tmpdir
________|______
| | |
branches tags trunk
|
sources
____|_____
| |
includes docs