Test whether a file or directory exist in shell
Tags: linux, shellHow to test whether a file exist in shell on Linux? We can use the test command to check file types and whether it exits.
How to test whether a path is a regular file in shell on Linux
We can use the following command to test whether a path is a regular file and exist.
|
1 2 3 4 |
test -f some_file if [[ $? == 0 ]] ; then echo "some_file is a file and exist" fi |
How to test whether a path is a folder in shell
Using the following command, we can test whether a path is a folder in shell on linux.
|
1 2 3 4 |
test -d some_folder if [[ $? == 0 ]] ; then echo "some_folder is a folder and exist" fi |
How to test whether a file is a symbolic link on linux?
Using the following command, we can test whether a file is a symbolic link on linux.
|
1 2 3 4 |
test -L some_link if [[ $? == 0 ]] ; then echo "some_link is a symbolic and exist" fi |
How to test file or directory in shell scripts
Test whether a path is a folder and exist
|
1 2 3 4 |
file_path='/homes/user/xx' if [ -d $file_path ] ; then echo "$file_path is a folder" fi |
Test Whether a path is a regular file
|
1 2 3 4 |
file_path='/homes/user/xx' if [ -f $file_path ] ; then echo "$file_path is a file" fi |
Other test operators to check the type of a path
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
-b FILE FILE exists and is block special -c FILE FILE exists and is character special -d FILE FILE exists and is a directory -e FILE FILE exists -f FILE FILE exists and is a regular file -g FILE FILE exists and is set-group-ID -G FILE FILE exists and is owned by the effective group ID -h FILE FILE exists and is a symbolic link (same as -L) -k FILE FILE exists and has its sticky bit set -L FILE FILE exists and is a symbolic link (same as -h) -O FILE FILE exists and is owned by the effective user ID -p FILE FILE exists and is a named pipe -r FILE FILE exists and read permission is granted -s FILE FILE exists and has a size greater than zero -S FILE FILE exists and is a socket -t FD file descriptor FD is opened on a terminal -u FILE FILE exists and its set-user-ID bit is set -w FILE FILE exists and write permission is granted -x FILE FILE exists and execute (or search) permission is granted |
For example, we can test whether a file is a symbolic link:
|
1 2 3 4 |
file_path='/homes/user/xx' if [ -L $file_path ] ; then echo "$file_path is a symbolic link" fi |











