Kunal,
For filenames the options are:
-r true if it exists and is readable
-w
true if it exists and is writable
-x
true if it exists and is executable
-f
true if it exists and is a regular file (or for csh, exists and is not a directory)
-d
true if it exists and is a directory
-h
or -L true if it exists and is a symbolic link
-c
true if it exists and is a character special file (i.e. the special device is accessed
one character at a time)
-b
true if it exists and is a block special file (i.e. the device is accessed in blocks
of data)
-p
true if it exists and is a named pipe (fifo)
-u
true if it exists and is setuid (i.e. has the set-user-id bit set, s or S in the third
bit)
-g
true if it exists and is setgid (i.e. has the set-group-id bit set, s or S in the sixth
bit)
-k
true if it exists and the sticky bit is set (a t in bit 9)
-s true if it exists and is greater than zero in size
HTH,
Regards,
Praveen