-a
file
|
file
exists. |
-b
file
|
file
is a block device file. |
-c
file
|
file
is a character device file. |
-d
file
|
file
is a directory. |
-f
file
|
file
is a regular file. |
-g
file
|
file
has its setgid bit set. |
-k
file
|
file
has its sticky bit set. |
-n
string
|
string
is non-null. |
-o
option
|
option
is set. |
-p
file
|
file
is a pipe or named pipe (FIFO file). |
-r
file
|
file
is readable. |
-s
file
|
file
is not empty. |
-t
N
|
File descriptor N
points to a terminal. |
-u
file
|
file
has its setuid bit set. |
-w
file
|
file
is writeable. |
-x
file
|
file
is executable, or file
is a
directory that can be searched.
|
-z
string
|
string
is null. |
-G
file
|
file
's group ID is the same as that of the shell. |
-L
file
|
file
is a symbolic link. |
-O
file
|
file
is owned by the shell's user ID. |
-S
file
|
file
is a socket. |
fileA
-nt
fileB
|
fileA
is newer than fileB
. |
fileA
-ot
fileB
|
fileA
is older than fileB
. |
fileA
-ef
fileB
|
fileA
and fileB
point to
the same file.
|
string
= pattern
|
string
matches pattern
(which can contain wildcards).
|
string
!= pattern
|
string
does not match pattern
. |
stringA
< stringB
|
stringA
comes before stringB
in dictionary order.
|
stringA
> stringB
|
stringA
comes after stringB
in
dictionary order.
|
exprA
-eq exprB
|
Arithmetic expressions exprA
and
exprB
are equal.
|
exprA
-ne exprB
|
Arithmetic expressions exprA
and
exprB
are not equal.
|
exprA
-lt exprB
|
exprA
is less than exprB
. |
exprA
-gt exprB
|
exprA
is greater than exprB
. |
exprA
-le exprB
|
exprA
is less than or equal to exprB
. |
exprA
-ge exprB
|
exprA
is greater than or equal to exprB
. |