-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
. |