Table B-6. Test operators
Operator | True if... |
---|
-a file | file exists |
-b file | file exists and is a block device file |
-c file | file exists and is a character device file |
-d file | file exists and is a directory |
-e file | file exists; same as -a |
-f file | file exists and is a regular file |
-g file | file exists and has its setgid bit set |
-G file | file exists and is owned by the effective group ID |
-h file | file exists and is a symbolic link |
-k file | file exists and has its sticky bit set |
-L file | file exists and is a symbolic link |
-n string | string is non-null |
-N file | file was modified since it was last read |
-O file | file exists and is owned by the effective user ID |
-p file | file exists and is a pipe or named pipe (FIFO file) |
-r file | file exists and is readable |
-s file | file exists and is not empty |
-S file | file exists and is a socket |
-t N | File descriptor N points to a terminal |
-u file | file exists and has its setuid bit set |
-w file | file exists and is writeable |
-x file | file exists and is executable, or file is a directory that can be searched |
-z string | string has a length of zero |
fileA -nt fileB | fileA modification time is newer than fileB |
fileA -ot fileB | fileA modification time is older than fileB |
fileA -ef fileB | fileA and fileB point to the same file |
stringA = stringB | stringA equals stringB (POSIX version) |
stringA == stringB | stringA equals stringB |
stringA != stringB | stringA does not match stringB |
stringA =~ regexp | stringA matches the extended regular expression regexp[3] |
stringA < stringB | stringA sorts before stringB lexicographically |
stringA > stringB | stringA sorts after stringB lexicographically |
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 |
exprA -a exprB | exprA is true and exprB is true |
exprA -o exprB | exprA is true or exprB is true |