Sarathlal N

Check if file exist? - Bash

To test the existence of a file in bash, we can use the test command. The test command can check file type and this way, we can compare the values.

Syntax

test -file-test-operators file-name

[ -f /etc/hosts ]

File test operators

-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

Example

#!/bin/bash
file="/etc/hosts"
if [ -f "$file" ]
then
	echo "$file found."
else
	echo "$file not found."
fi

Or

[ -f /etc/hosts ] && echo "Found" || echo "Not found"

Looking for a skilled WordPress/WooCommerce developer? I'm currently available for freelance, contract, or full-time remote opportunities! Let's create something amazing together. Send me a quick message, and I'll respond within 24 hours!

Recent Posts

  1. REST API Methods Explained with Best Practices for Building Clean and Secure APIs
  2. My 28-Day Plan to Master Modern WordPress Development Using AI Tools
  3. Scaling WordPress - How Custom Database Tables Solve the Post Meta Bottleneck
  4. WordPress Transients Explained - A Developer's Guide to Site Performance
  5. Behind the Click - The Hidden Journey of Your Web Requests

Your Questions / Comments

If you found this article interesting, found errors, or just want to discuss about it, please get in touch.