Check if File Exists in Bash
When writing a Bash script, you often work with files or folders. Before trying to read, copy, or edit them, you should first check if file exists in Bash. Doing this ensures the file or directory is really there and prevents your script from breaking or showing errors.
There are several ways to check if file exists in Bash. The most common options are:
test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
All of these can be used for file checks, but [[ ]]
has more features and works only in Bash, while [ ]
and test
are more universal and portable.
Flag What It Checks
-e Any kind of file or directory
-f A regular file (not a folder or special file)
-d A directory
-r File is readable
-w File is writable
-x File is executable
-L A symbolic link (shortcut to another file)
-s A file that is not empty
if [ -e "$FILE" ]; then
echo "It exists"
fi
This checks if something is there, whether it is a file or a folder.
if [ -f "$FILE" ]; then
echo "It is a file"
fi
This makes sure the path is a normal file and not a folder.
if [ -d "$DIR" ]; then
echo "It is a directory"
fi
This checks only for folders.
if [ -r "$FILE" ]; then
echo "You can read this file"
fi
if [ -w "$FILE" ]; then
echo "You can write to this file"
fi
if [ -x "$FILE" ]; then
echo "You can run this file"
fi
These tests confirm whether the file can be read, edited, or run as a program.
if [ ! -f "$FILE" ]; then
echo "The file is missing"
fi
The exclamation mark means “not”. This checks if the file is absent.
if [ -f "$FILE1" ] && [ -f "$FILE2" ]; then
echo "Both files exist"
fi
This makes sure that two files are present before running further commands.
In Bash, checking if a file or directory exists is simple once you know the flags. Use -e
for anything, -f
for regular files, and -d
for folders. Add checks for read, write, or execute permissions when needed. Always put the file name inside quotes to avoid problems with spaces. If you want to test for something missing, use !
. With these methods, your Bash scripts will be much safer and easier to manage.
Docker is a powerful open-source containerization platform that allows developers to build, test, and deploy…
Docker is one of the most widely used containerization platforms. But there may come a…
Introduction Google Dorking is a technique where advanced search operators are used to uncover information…
Introduction In cybersecurity and IT operations, logging fundamentals form the backbone of monitoring, forensics, and…
What is Networking? Networking brings together devices like computers, servers, routers, and switches so they…
Introduction In the world of Open Source Intelligence (OSINT), anonymity and operational security (OPSEC) are…