TEST(1)

NAME
test - check file types and compare values

SYNOPSIS
test EXPRESSION
[ EXPRESSION ]
test OPTION

DESCRIPTION

Exit with the status determined by EXPRESSION.

--help
    display this help and exit

--version
    output version information and exit

EXPRESSION is true or false and sets exit status. It is one of:

( EXPRESSION )
    EXPRESSION is true

! EXPRESSION
    EXPRESSION is false

EXPRESSION1 -a EXPRESSION2
    both EXPRESSION1 and EXPRESSION2 are true

EXPRESSION1 -o EXPRESSION2
    either EXPRESSION1 or EXPRESSION2 is true

[-n] STRING
    the length of STRING is nonzero

-z STRING
    the length of STRING is zero

STRING1 = STRING2
    the strings are equal

STRING1 != STRING2
    the strings are not equal

INTEGER1 -eq INTEGER2
    INTEGER1 is equal to INTEGER2

INTEGER1 -ge INTEGER2
    INTEGER1 is greater than or equal to INTEGER2

INTEGER1 -gt INTEGER2
    INTEGER1 is greater than INTEGER2

INTEGER1 -le INTEGER2
    INTEGER1 is less than or equal to INTEGER2

INTEGER1 -lt INTEGER2
    INTEGER1 is less than INTEGER2

INTEGER1 -ne INTEGER2
    INTEGER1 is not equal to INTEGER2

FILE1 -ef FILE2
    FILE1 and FILE2 have the same device and inode numbers

FILE1 -nt FILE2
    FILE1 is newer (modification date) than FILE2

FILE1 -ot FILE2
    FILE1 is older than FILE2

-b FILE
    FILE exists and is block special

-c FILE
    FILE exists and is character special

-d FILE
    FILE exists and is a directory

-e FILE
    FILE exists

-f FILE
    FILE exists and is a regular file

-g FILE
    FILE exists and is set-group-ID

-G FILE
    FILE exists and is owned by the effective group ID

-k FILE
    FILE exists and has its sticky bit set

-L FILE
    FILE exists and is a symbolic link

-O FILE
    FILE exists and is owned by the effective user ID

-p FILE
    FILE exists and is a named pipe

-r FILE
    FILE exists and is readable

-s FILE
    FILE exists and has a size greater than zero

-S FILE
    FILE exists and is a socket

-t [FD]
    file descriptor FD (stdout by default) is opened on a terminal

-u FILE
    FILE exists and its set-user-ID bit is set

-w FILE
    FILE exists and is writable

-x FILE
    FILE exists and is executable

Beware that parentheses need to be escaped (e.g., by backslashes) for shells. INTEGER may also be -l STRING, which evaluates to the length of STRING.

AUTHOR
Written by FIXME: ksb and mjb.

REPORTING BUGS
Report bugs to <bug-sh-utils@gnu.org>.

COPYRIGHT
Copyright © 1999 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO
The full documentation for test is maintained as a Texinfo manual. If the info and test programs are properly installed at your site, the command

    info test

should give you access to the complete manual.