File test operators
-e
Return true if file (or directory) exists.
if [[ -e /path/to/file ]]; then echo "File or dir exists"; fi
-f
Return true if file exists and is a regular file (not a directory).
if [[ -f /path/to/file ]]; then echo "File exists"; fi
-d
Return true if file exists and is a directory.
if [[ -d /path/to/file ]]; then echo "Directory exists"; fi
-s
Return true if file is not zero size.
if [[ -s /path/to/file ]]; then echo "File is not empty"; fi
-N
Return true if file has been modified since it was last read.
if [[ -N /path/to/file ]]; then echo "File has been modified"; fi
-nt
Return true if file1 is newer (more recent modification time) than file2.
if [[ $file1 -nt $file2 ]]; then echo "File 1 is newer"; fi
-ot
Return true if file1 is older than file2.
if [[ $file1 -ot $file2 ]]; then echo "File 1 is older"; fi