How To Check If a Directory Exists In Bash Shell Script

To check if a directory exists in Bash shell script, you can use the following syntax:

if [ -d “/path/to/dir” ]; then
echo “Directory exists”
else
echo “Directory does not exist”
fi

When writing shell scripts, it is often necessary to check if a directory exists before performing certain actions. Checking if a directory exists in a shell script can be done in a few different ways, and in this tutorial, you will learn some of these methods to check if a directory exists in bash shell script.

How To Check If a Directory Exists In Bash Shell Script

There are a few ways to check if a directory exists in a shell script, but the most commonly used methods involve the test command or the [ command (also known as the test built-in); are follows:

  • Method 1: Using the Test Command
  • Method 2: Using the Conditional Operator
  • Method 3: Using the if statement with the ls command

Method 1: Using the Test Command

The test command is a command-line utility used to evaluate expressions and return a boolean value. One of the expressions that can be evaluated using the test command is the existence of a directory. The test command can be used in a shell script to check if a directory exists using the following syntax:

if [ -d /path/to/directory ]; then
    # directory exists
else
    # directory does not exist
fi

In this example, the -d option is used to check if the specified path is a directory. If the path is a directory, the expression evaluates to true, and the code inside the if block is executed. Otherwise, the code inside the else block is executed.

Method 2: Using the Conditional Operator

The conditional operator is a shorthand way of writing if-else statements in shell scripts. The conditional operator can also be used to check if a directory exists in a shell script using the following syntax:

[ -d /path/to/directory ] && {
    # directory exists
} || {
    # directory does not exist
}

In this example, the [ -d /path/to/directory ] expression is used to check if the specified path is a directory. If the path is a directory, the code inside the first block is executed. Otherwise, the code inside the second block is executed.

Method 3: Using the if statement with the ls command

The ls command is a Unix utility used to list the contents of a directory. The ls command can be used in a shell script to check if a directory exists using the following syntax:

if [ -n "$(ls -A /path/to/directory 2>/dev/null)" ]; then
    # directory exists and is not empty
else
    # directory does not exist or is empty
fi

In this example, the -n option is used to check if the output of the ls command is not empty. If the output of the ls command is not empty, the code inside the if block is executed. Otherwise, the code inside the else block is executed. The 2>/dev/null redirects the error output to /dev/null to suppress error messages.

Conclusion

In conclusion, there are several ways to check if a directory exists in a shell script. The test command, the conditional operator, and the ls command can all be used to achieve this. Choose the method that works best for your specific use case and remember to handle both the cases where the directory exists and when it does not exist.

Recommended Tutorials

Jaspreet Singh Ghuman

Jaspreet Singh Ghuman

Jassweb.com/

Passionate Professional Blogger, Freelancer, WordPress Enthusiast, Digital Marketer, Web Developer, Server Operator, Networking Expert. Empowering online presence with diverse skills.

jassweb logo

Jassweb always keeps its services up-to-date with the latest trends in the market, providing its customers all over the world with high-end and easily extensible internet, intranet, and extranet products.

Contact
San Vito Al Tagliamento 33078
Pordenone Italy
Item added to cart.
0 items - 0.00
Open chat
Scan the code
Hello 👋
Can we help you?