We now know how to explore files and directories, but how do we create them in the first place?
Let’s go back to our shell-lesson-data
directory on the Desktop
and use ls -F
to see what it contains:
$ pwd
/Users/nelle/Desktop/shell-lesson-data
$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf writing/
Let’s create a new directory called thesis
using the command mkdir thesis
(which has no output):
$ mkdir thesis
As you might guess from its name, mkdir
means ‘make directory’.
Since thesis
is a relative path (i.e., does not have a leading
slash, like /what/ever/thesis
), the new directory is created in
the current working directory:
$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg
solar.pdf thesis/ writing/
Since we’ve just created the thesis
directory, there’s nothing in it yet:
$ ls -F thesis
Note that mkdir
is not limited to creating single directories one at a time.
The -p
option allows mkdir
to create a directory with nested subdirectories
in a single operation:
$ mkdir -p project/data project/results
Using the shell to create a directory is no different than using a file explorer.
If you open the current directory using your operating system’s graphical file explorer,
the thesis
directory will appear there too.
While the shell and the file explorer are two different ways of interacting with the files,
the files and directories themselves are the same.
Complicated names of files and directories can make your life painful when working on the command line. Here we provide a few useful tips for the names of your files and directories.
Don’t use spaces.
Spaces can make a name more meaningful,
but since spaces are used to separate arguments on the command line
it is better to avoid them in names of files and directories.
You can use -
or _
instead (e.g. north-pacific-gyre/
rather than north pacific gyre/
).
To test this out, try typing mkdir north pacific gyre
and see what directory (or directories!)
are made when you check with ls -F
.
Don’t begin the name with -
(dash).
Commands treat names starting with -
as options.
Stick with letters, numbers, .
(period or ‘full stop’), -
(dash) and _
(underscore).
If you need to refer to names of files or directories that have spaces
or other special characters, you should surround the name in quotes (""
).