BASH Shell: Test If a File Is Writable or Not

Q. How can you test if a file is writable under UNIX / Linux bash shell scripting?

A. You can easily test if a file is writable or noting test command under UNIX / Linux.

The -w option

The -w option is used to test if a FILE exists and write permission is granted or not. It returns true if a file is writable.

General syntax is as follows:
[ -w filename ] && echo "Writable" || echo "Not Writable"
test -w filename && echo "Writable" || echo "Not Writable"

Here is a sample shell script:

#!/bin/bash
FILE="$1"
 
[ $# -eq 0 ] && exit 1
 
if [ -w "$FILE" ] 
then
   echo "Write permission is granted on $FILE"
else
   echo "Write permission is NOT granted on $FILE"
fi

#!/bin/bash
FILE="$1" [ $# -eq 0 ] && exit 1 if [ -w "$FILE" ]
then
echo "Write permission is granted on $FILE"
else
echo "Write permission is NOT granted on $FILE"
fi

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.