Bash Script to Check if File is Directory
Bash Script to Check if File is Directory – To check if the specified file is a directory in bash scripting, we shall use [ -d FILE ] expression with bash if statement.
- Example 1 – Simple script to check if file exists and is a directory
- Example 2 – Check if argument passed to function is a directory
Example 1 – Check if File Exists And is a Directory
We shall consider /home/tutorialkart/ and /home/tutorialkart/sample.txt which are directory and file respectively. We shall verify the same with the help of following bash script.
Bash Script File
#!/bin/bash
# Scenario - File exists and is a directory
if [ -d /home/tutorialkart/ ];
then
echo "/home/tutorialkart is directory"
else
echo "/home/tutorialkart is not a directory"
fi
# Scenario - File exists and is not a directory
if [ -d /home/tutorialkart/sample.txt ];
then
echo "/home/tutorialkart/sample.txt is a directory"
else
echo "/home/tutorialkart/sample.txt is not a directory"
fi
When the above bash shell script is run in Terminal, we will get the following output.
Output
$ ./bash-script-if-file-is-directory
/home/tutorialkart is directory
/home/tutorialkart/sample.txt is not a directory
Example 2 – Check if Path is Directory
We shall consider the same file and directory mentioned in the previous example. In this example, we shall write a function whose first argument is a FILE. And in the function we shall check if the passed argument (FILE) exists and is a directory.
Bash Script File
#!/bin/bash
# function to check if passed argument is a directory and exists
checkIfDirectory() {
# $1 meaning first argument
if [ -d "$1" ];
then
echo "$1 exists and is a directory."
else
echo "$1 is not a directory."
fi
}
# Scenario - File exists and is a directory
checkIfDirectory "/home/tutorialkart/"
# Scenario - File exists and is not a directory
checkIfDirectory "/home/tutorialkart/sample.txt"
When the above script is run in Terminal, we will get the following output.
Output
$ ./bash-script-if-file-is-directory-2
/home/tutorialkart/ exists and is a directory.
/home/tutorialkart/sample.txt is not a directory.
Conclusion
In this Bash Tutorial – Bash Script to Check if File is Directory, we have come across an example to check if the specified file exists and is a directory.