[ cmd ] POSIX test (same as 'test cmd')
[[ cmd ]] BASH test

Flags: (return true if)
!    negates previous test

-n   string is non-zero
-z   string length is zero

-v   variable is set
-R   variable is set and a name reference

-e   file exists
-f   file is regular file
-d   file is directory
-h/L file is symlink
-b   file is block device
-c   file is character device
-p   file is pipe
-S   file is socket
-s   file is not zero size
-t   returns true if tty
-r   file has read permission
-w   file has write permission
-x   file has execute permission
-g   group-id flag set
-u   user-id flag set
-k   sticky bit set
-O   you are owner of file
-G   file has same group-id as you
-N   file modified since last read
-nt  file is newer than
-ot  file is older than
-ef  files are hardlinks to the same file

-o   optname is enabled

Strings:
==  strings are equal
=   strings are equal ([[  ]] only)
!=  strings are not equal
<   string1 sorts before string 2
>   string1 sorts after string 2

Numerical: (integers only)
-eq  equals
-ne  not equals
-lt  less than
-le  less than or equal
-gt  greater than
-ge  greater than or equal