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