DebugPointer
Published on

How to check if a file exist in a Bash Script?

How to check if a file exist in a Bash Script?

Data in Unix is organized into files. Several files are organized into directories. All directories are structured in a tree-like structure, called as the filesystem.

In Unix, most of the time, you end up working with files and perform operations on the same - like listing files, copying or moving files, deleting files etc.,

So, let's see jpw we can check if a file exists or not in a given path.

Check if a file exists in Bash Script

We use the if command to check if a file exists or not. if performs a conditional check on the command that goes inside the brackets [ ].

if [ -f "$FILE_PATH" ]; then
  # If the $FILE_PATH exist, code inside the block will get executed, for example:
  echo "File $FILE_PATH exist";
fi

Check if a file does not exists in Bash Script

Here we are checking the error condition or the negative condition if the file does not exist.

if [ ! -d "$FILE_PATH" ]; then
  # If the $FILE_PATH does not exist, code inside the block will get executed, for example:
  echo "File $FILE_PATH does not exist";
fi

Are you looking for the scenario if a directory exist or not in bash scripts?

There is also a shorthand notation to check if a file exist or not:

Shorthand to check if a file exist

[ -f "$FILE_PATH" ] && echo "File $FILE_PATH exist";

Shorthand to check if a file does not exist

[ ! -f "$FILE_PATH" ] && echo "File $FILE_PATH does not exist";

You can have any statement after the && symbol.

The above code is an ideal way to check if a file exists in a given path or not.