Determine whether a directory exists in Bash

David Y.
jump to solution

The Problem

How can I determine whether a directory exists in Bash?

The Solution

We can check whether a directory exists using the test command-line utility, as below:

if test -d /path/to/directory; then
  echo "Directory exists."
fi

Because the test command is used frequently in Bash expressions, we can write it as [] rather than typing out test:

if [ -d /path/to/directory ]; then
  echo "Directory exists."
fi

The -d flag tests whether the provided name exists and is a directory. To test for regular files instead, we can use the -f flag. To test for both files and directories, we can use the -e flag.

More information about test can be found on its manual page, accessible by typing man test into the terminal.

Further Reading

If you’re looking to get a deeper understanding of how Bash application monitoring works, take a look at the following articles:

POST JSON data using cURL
David Y.
Concatenate string variables in Bash
David Y.

Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

Sentry