TEST
Section: User Commands (1)
Updated: GNU Shell Utilities
NAME
test - check file types and compare values
SYNOPSIS
test
[expr]
test
{--help,--version}
DESCRIPTION
This documentation is no longer being maintained and may be inaccurate
or incomplete. The Texinfo documentation is now the authoritative source.
This manual page
documents the GNU version of
test.
Note that most shells have a built-in command by the same name and
with similar functionality.
test
returns a status of 0 (true) or 1 (false) depending on
the evaluation of
the conditional expression
expr.
Expressions may be unary or binary. Unary
expressions are often used to examine the status of a file. There
are string operators
and numeric comparison operators as well.
- -b file
-
True if file exists and is block special.
- -c file
-
True if file exists and is character special.
- -d file
-
True if file exists and is a directory.
- -e file
-
True if file exists
- -f file
-
True if file exists and is a regular file.
- -g file
-
True if file exists and is set-group-id.
- -k file
-
True if file has its ``sticky'' bit set.
- -L file
-
True if file exists and is a symbolic link.
- -p file
-
True if file exists and is a named pipe.
- -r file
-
True if file exists and is readable.
- -s file
-
True if file exists and has a size greater than zero.
- -S file
-
True if file exists and is a socket.
- -t [fd]
-
True if
fd
is opened on a terminal. If
fd
is omitted, it defaults to 1 (standard output).
- -u file
-
True if file exists and its set-user-id bit is set.
- -w file
-
True if file exists and is writable.
- -x file
-
True if file exists and is executable.
- -O file
-
True if file exists and is owned by the effective user id.
- -G file
-
True if file exists and is owned by the effective group id.
- file1 -nt file2
-
True if file1 is newer (according to
modification date) than file2.
- file1 -ot file2
-
True if file1 is older than file2.
- file1 -ef file2
-
True if file1 and file2 have the same device and
inode numbers.
- -z string
-
True if the length of string is zero.
- -n string
-
- string
-
True if the length of
string
is non-zero.
- string1 = string2
-
True if the strings are equal.
- string1 != string2
-
True if the strings are not equal.
- ! expr
-
True if
expr
is false.
- expr1 -a expr2
-
True if both
expr1
and
expr2
are true.
- expr1 -o expr2
-
True if either
expr1
or
expr2
is true.
- arg1 OP arg2
-
OP
is one of
-eq,
-ne,
-lt,
-le,
-gt,
or
-ge.
These arithmetic binary operators return true if arg1
is equal, not-equal, less-than, less-than-or-equal,
greater-than, or greater-than-or-equal than arg2,
respectively.
arg1
and
arg2
may be positive integers, negative integers, or the special
expression -l string, which evaluates to the
length of
string.
OPTIONS
When GNU
test
is invoked with exactly one argument, the following options are recognized:
- --help
-
Print a usage message on standard output and exit successfully.
- --version
-
Print version information on standard output then exit successfully.