Main index | Section 1 | 日本語 | Deutsch | Options |
All operators and flags are separate arguments to the test utility.
The following primaries are used to construct expression:
| |
True if file exists and is a block special file. | |
| |
True if file exists and is a character special file. | |
| |
True if file exists and is a directory. | |
| |
True if file exists (regardless of type). | |
| |
True if file exists and is a regular file. | |
| |
True if file exists and its set group ID flag is set. | |
| |
True if
file
exists and is a symbolic link.
This operator is retained for compatibility with previous versions of
this program.
Do not rely on its existence; use
| |
| |
True if file exists and its sticky bit is set. | |
| |
True if the length of string is nonzero. | |
| |
True if file is a named pipe ( FIFO). | |
| |
True if file exists and is readable. | |
| |
True if file exists and has a size greater than zero. | |
| |
True if the file whose file descriptor number is file_descriptor is open and is associated with a terminal. | |
| |
True if file exists and its set user ID flag is set. | |
| |
True if file exists and is writable. True indicates only that the write flag is on. The file is not writable on a read-only file system even if this test indicates true. | |
| |
True if file exists and is executable. True indicates only that the execute flag is on. If file is a directory, true indicates that file can be searched. | |
| |
True if the length of string is zero. | |
| |
True if file exists and is a symbolic link. | |
| |
True if file exists and its owner matches the effective user id of this process. | |
| |
True if file exists and its group matches the effective group id of this process. | |
| |
True if file exists and is a socket. | |
file1 | |
True if file1 exists and is newer than file2. | |
file1 | |
True if file1 exists and is older than file2. | |
file1 | |
True if file1 and file2 exist and refer to the same file. | |
string | |
True if string is not the null string. | |
s1 = s2 | |
True if the strings s1 and s2 are identical. | |
s1 != s2 | |
True if the strings s1 and s2 are not identical. | |
s1 < s2 | |
True if string s1 comes before s2 based on the binary value of their characters. | |
s1 > s2 | |
True if string s1 comes after s2 based on the binary value of their characters. | |
n1 | |
True if the integers n1 and n2 are algebraically equal. | |
n1 | |
True if the integers n1 and n2 are not algebraically equal. | |
n1 | |
True if the integer n1 is algebraically greater than the integer n2. | |
n1 | |
True if the integer n1 is algebraically greater than or equal to the integer n2. | |
n1 | |
True if the integer n1 is algebraically less than the integer n2. | |
n1 | |
True if the integer n1 is algebraically less than or equal to the integer n2. | |
If
file
is a symbolic link,
test
will fully dereference it and then evaluate the expression
against the file referenced, except for the
These primaries can be combined with the following operators:
amp;! expression | |
True if expression is false. | |
expression1 | |
True if both expression1 and expression2 are true. | |
expression1 | |
True if either expression1 or expression2 are true. | |
amp;( expression amp;) | |
True if expression is true. | |
The
Some shells may provide a builtin test command which is similar or identical to this utility. Consult the builtin(1) manual page.
In particular, only expressions containing
0 | expression evaluated to true. |
1 | expression evaluated to false or expression was missing. |
>1 | An error occurred. |
test -n amp;"$(find -L -- FILE1 -prune -newer FILE2 2>/dev/null)amp;"
This can be modified using non-standard find(1) primaries like -newerca to compare other timestamps.
[ -z abc -a -w file ]
To avoid this, write
[ -z abc ] && [ -w file ]
TEST (1) | October 5, 2016 |
Main index | Section 1 | 日本語 | Deutsch | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
“ | Like a classics radio station whose play list spans decades, Unix simultaneously exhibits its mixed and dated heritage. There's Clash-era graphics interfaces; Beatles-era two-letter command names; and systems programs (for example, ps) whose terse and obscure output was designed for slow teletypes; Bing Crosby-era command editing (# and @ are still the default line editing commands), and Scott Joplin-era core dumps. | ” |
— The Unix Haters' handbook |