*-B returns true if the file exists and is a block file
*-C returns true if the file exists and is a character file
*-D returns true if pathname exists and is a directory
*-E returns true if the file or directory specified by pathname exists.
*-F returns true if the file exists and is a regular file
*-G returns true if the file or directory specified by pathname exists and the SGID bit is set.
*-H returns true if the file exists and is a symbolic link file. This option is invalid in some old systems.
*-K returns true if a file or directory specified by pathname exists and a "Sticky" bit is set.
*-P returns true if the file exists and is a command pipeline.
*-R returns true if the file or directory specified by pathname exists and is readable.
*-S returns true if the file size is greater than 0.
*-U returns true if a file or directory specified by pathname exists and SUID is set
*-W returns true if the file or directory specified by pathname exists and is executable. A directory must be executable for its content access.
*-O returns true if a file or directory specified by pathname exists and is owned by the user specified by the valid user ID of the current process.
Comparison character writing in UNIX Shell:
*-Eq equals
*-Ne is not equal
*-Gt is greater
*-Lt is less
*-Le is less than or equal
*-Ge is greater than or equal
*-Z empty string
* = Two equal characters
*! = Two characters
*-N non-empty string