Skip to main content
Engineering LibreTexts

05-C.6.5: Working with Files and Directories - ls/rmidir/mkdir Command

  • Page ID
    32209
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    The ls Command

    The ls command lists files on a Linux system. It's a simple command. The ls command is a basic command in Linux but is used extensively to look at file and directory information. The command has a plethora of arguments and features and most users barely scratch the surface of the depth of this command. By this point in the course you should be comfortable using the ls command in the lab environment.

    Syntax

    ls [ PTION ] [FILE]
    

    Command Options

    Options Option Meaning
    -a, --all Do not ignore entries starting with . (a period).
    -f Do not sort, enable -aU, disable -ls --color.
    -i, --inode Print the index number of each file.
    -l Use a long listing format.
    -r, --reverse Reverse order while sorting.
    -R, --recursive List subdirectories recursively.

    The mkdir Command

    The mkdir command creates directories. This command can create multiple directories at once as well as set the permissions for the directories. It is important to note that the user executing this command must have enough permissions to create a directory in the parent directory.

    Syntax:

    mkdir [ OPTIONS ] [directories ...]

    Command Options

    Option Option Meaning
    -m, --mode=MODE Set file mode (as in chmod), not a=rwx - umask .

    The mkdir has only a couple of options, and only one that is used with any regularity - that is the -m option.

    pbmac@ubuntu $ mkdir one
    pbmac@ubuntu $ ls -ld one
    drwxrwxr-x 2 pbmac pbmac 4096 Jul 15 16:39 one
    pbmac@ubuntu $ mkdir -m a=rwx two
    pbmac@ubuntu $ ls -ld two
    drwxrwxrwx 2 pbmac pbmac 4096 Jul 15 16:39 two
    pbmac@ubuntu $ mkdir -m a=r three
    pbmac@ubuntu $ ls -ld three
    dr--r--r-- 2 pbmac pbmac 4096 Jul 15 16:39 three
    pbmac@ubuntu $ mkdir -m u=r,g=w,o=x four
    pbmac@ubuntu $ ls -l
    total 16
    dr---w---x 2 pbmac pbmac 4096 Jul 15 16:41 four
    drwxrwxr-x 2 pbmac pbmac 4096 Jul 15 16:39 one
    dr--r--r-- 2 pbmac pbmac 4096 Jul 15 16:39 three
    drwxrwxrwx 2 pbmac pbmac 4096 Jul 15 16:39 two
    pbmac@ubuntu $ 
    
    

     In the example to the above:

    1. Using mkdir with no permission settings, using system defaults.
    2. Second mkdir, specify a=rwx - the a means ALL get rwx permissions.
    3. Third mkdir specify a=r - ALL get read permission.
    4. Fourth mkdir has u=r,g=w,o=x - this is USER gets read, GROUP gets write, and OTHER gets execute.

    mkdir can set permissions other than the default permissions, which can be useful at times.

    The rmdir Command

    The rmdir command is used remove empty directories from the filesystem. The rmdir command removes each directory specified in the command line, but only if the directory is empty. Directories that have sub-directories or files within them will not be removed.

    Syntax:

    rmdir [options...] [directories ...]

    rmdir has options that are the same as mkdir shown above.

    Adapted from:
    "mkdir command in Linux with Examples" by rossoskull, Geeks for Geeks is licensed under CC BY-SA 4.0
    "rmdir command in Linux With Examples" by rahulkumarmandal, Geeks for Geeks is licensed under CC BY-SA 4.0


    05-C.6.5: Working with Files and Directories - ls/rmidir/mkdir Command is shared under a CC BY-SA 4.0 license and was authored, remixed, and/or curated by LibreTexts.

    • Was this article helpful?