Unix and Linux Directory Management Commands: A Complete Guide

Published on  

10 min read

Unix and Linux Directory Management Commands: A Complete Guide

Learn how to manage directories in Unix and Linux with this complete guide on directory management commands. This article covers the basics of ls, cd, pwd, mkdir, rmdir, and rm commands, as well as more advanced features such as recursive deletion and directory permissions.

If you are new to Unix or Linux operating systems, you may feel intimidated by the command line interface. However, mastering a few basic commands can help you manage directories and files with ease. In this guide, we will provide you with an overview of Unix and Linux directory management commands.

Basic Concepts of Directory Management

Before we dive into the commands, let's discuss some basic concepts of directory management in Unix and Linux.

What is a Directory or Folder?

In Unix and Linux, a directory/folder is a container that holds files and other directories. Directories are organized in a hierarchical structure, where each directory can contain other directories and files.

Current Working Directory

The current working directory is the directory in which you are currently working. You can display the current working directory by using the pwd command.

Path

A path is a string of characters that represents the location of a directory or file in the file system. There are two types of paths: absolute and relative.

  • An absolute path specifies the complete path from the root directory to the file or directory you want to access. For example, /home/user/documents is an absolute path.
  • A relative path specifies the path from the current working directory to the file or directory you want to access. For example, if the current working directory is /home/user, the relative path to the documents directory is documents.

Unix and Linux Directory Management Commands

Here are some of the most commonly used Unix and Linux directory management commands:

1. The ls Command

The ls command is used to list the contents of a directory. It is used without any arguments to list the contents of the current working directory or with a directory name as an argument to list the contents of a specific directory. The command can be used with several options to provide additional information about the files listed, such as the size of the file, the modification time, and the permissions.

ls [OPTIONS] OPTIONAL_DIRECTORY_NAME

The ls command can also be used with several options, such as:

  • -l to provide a detailed listing
  • -a to show hidden files, and 
  • -h to display file sizes in a human-readable format.

To use the ls command to list the contents of a directory, simply type the command followed by the directory name:

ls /home/username

This will list the contents of the directory /home/username. To list the contents of the current working directory, simply type:

ls

You can use the ls -l  for detailed listing of files and folders of the current directory.

2. The cd Command

The cd command is used to change the current working directory. To change to a specific directory, simply type cd followed by the path of the directory. For example, to change to the documents directory, type:

cd documents

Or you can try absolute path after cd and this will change to the html directory.

cd /var/www/html

You can also use cd without any arguments to change to your home directory. Also to directly go to the home directory you can type cd ~.

To change back to the previous directory, use the cd .. command without any arguments:

cd ..

Adding a dash symbol (-) to the cd command returns the shell to the previous working directory. For instance, after moving from Downloads to Example_Directory, return back to Downloads with:

cd -

3. The pwd Command

The pwd command is used to print the current working directory. To use the pwd command, simply type the command:

pwd

This will print the current working directory to the terminal.

4. The mkdir Command

The mkdir command is used to create directories in Unix and Linux systems. The syntax of the command is as follows:

mkdir [OPTIONS] DIRECTORY_NAME

The DIRECTORY_NAME parameter specifies the name of the directory to be created. The OPTIONS parameter is optional and can be used to customize the behavior of the mkdir command.

Here are some commonly used options:

  • -p: Creates the directory and any necessary parent directories. For example, if you run mkdir -p /path/to/new/directory, it will create the new directory along with the to and path directories if they do not already exist.
  • -m: Sets the permissions of the directory. You can specify the permissions in octal notation. For example, to set the permissions to 755, you would use the following command: mkdir -m 755 /path/to/new/directory.
  • -v: Prints a message for each directory that is created. This can be useful when creating multiple directories at once.

The mkdir Command Example:

For example, to create a directory named documents, type:

mkdir documents

You can also create a new directory with a specific path by specifying the absolute or relative path. For example, to create a directory named reports inside the documents directory, type:

mkdir documents/reports

Lastly, you can also create the directory and any necessary parent directories:

mkdir -p /path/to/new/directory

This will create the new directory along with the to and path directories if they do not already exist.

5. The rmdir Command

The rmdir command is used to remove empty directories from Unix and Linux systems. The syntax of the command is as follows:

rmdir [OPTIONS] DIRECTORY_NAME

The DIRECTORY_NAME parameter specifies the name of the directory to be removed. The OPTIONS parameter is optional and can be used to customize the behavior of the rmdir command.

Here are some commonly used options:

  • -p: Removes the directory and any parent directories that become empty as a result. For example, if you run rmdir -p /path/to/empty/directory, it will remove the directory along with the empty and to directories if they become empty after the removal.
  • -v: Prints a message for each directory that is removed. This can be useful when removing multiple directories at once.

The rmdir Command Example:

For example, to remove the reports directory we created earlier, type:

rmdir documents/reports

6. The rm Command

The rm command is used to remove files and directories from Unix and Linux systems. The syntax of the command is as follows:

rm [OPTIONS] FILE_OR_DIRECTORY_NAME

The FILE_OR_DIRECTORY_NAME parameter specifies the name of the file or directory to be removed. The OPTIONS parameter is optional and can be used to customize the behavior of the rm command.

Here are some commonly used options:

  • -f: Forces the removal of the file or directory without prompting for confirmation. This can be dangerous, as it can lead to the accidental removal of important files.
  • -r: Recursively removes the specified directory and all of its contents. This option is required when removing non-empty directories.
  • -i: Prompts for confirmation before removing each file or directory. This can help prevent accidental removals.

The rm Command Example:

For example, to remove a file named file.txt, type:

rm file.txt

To remove a directory and its contents, use the -r option. For example, to remove the documents directory and its contents, type:

rm -r documents

If a directory or a file within the directory is write-protected, you will be prompted to confirm the deletion. To remove a directory without being prompted, use the -f option:

rm -rf documents

You can also use regular expansions to match and delete multiple directories. For example, to remove all first-level directories in the current directory that ends with _test or test_ you would use the following command:

# This will remove directories 
# like: abc_test, xyz_test, anything_test, etc.
rm -r *_test

# This will remove directories 
# lke: test_abc, test_xyz, test_anything, etc.
rm -r test_*

# This will remove all directories within current folder
rm -r *

Using regular expansions when removing directories may be risky. It is recommended first to list the directories with the ls command so that you can see what directories will be deleted before running the rm command.

To avoid accidentally deleting important data, it is a good practice to use the -i option, which prompts the user for confirmation before deleting each file or directory. Here is an example:

rm -ri /home/user/documents/projects

This command would recursively delete the projects directory and all of its contents, but would prompt the user for confirmation before deleting each file or directory.

Conclution

Unix and Linux directory management commands are essential for navigating the file system and managing files and directories. In this guide, we covered the most common directory management commands, including ls, cd, pwd, mkdir, rmdir, and rm. By mastering these commands, you can become more efficient at managing your files and directories on Unix and Linux systems.

About the Author

Rexposed Staff

Was this helpful?