---
name: "uu-test"
section: "1"
platform: "linux"
package: "uutils-coreutils"
version: "0.12.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/uu-test"
---

# uu-test(1)

Check file types and compare values.

## NAME

test - Check file types and compare values.

## SYNOPSIS

**test** EXPRESSION\
 **test**\
 \[ EXPRESSION \]\
 \[ \]\
 \[ OPTION

## DESCRIPTION

Check file types and compare values.

## OPTIONS

- **-h**, **--help**

  Print help

- **-V**, **--version**

  Print version

## EXTRA

Exit with the status determined by EXPRESSION.

An omitted EXPRESSION defaults to false. Otherwise, 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

String operations:

\-n STRING\
       the length of STRING is nonzero

STRING\
       equivalent to -n STRING

\-z STRING\
       the length of STRING is zero

STRING1 = STRING2\
       the strings are equal

STRING1 != STRING2\
       the strings are not equal

STRING1 \> STRING2\
       STRING1 is greater than STRING2 in the current locale

STRING1 \< STRING2\
       STRING1 is less than STRING2 in the current locale

Integer comparisons:

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

File operations:

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

\-h FILE\
       FILE exists and is a symbolic link (same as -L)

\-k FILE\
       FILE exists and has its sticky bit set

\-L FILE\
       FILE exists and is a symbolic link (same as -h)

\-N FILE\
       FILE exists and has been 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 named pipe

\-r FILE\
       FILE exists and read permission is granted

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

\-S FILE\
       FILE exists and is a socket

\-t FD\
       file descriptor FD is opened on a terminal

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

\-w FILE\
       FILE exists and write permission is granted

\-x FILE\
       FILE exists and execute (or search) permission is granted

Except for -h and -L, all FILE-related tests dereference (follow) symbolic links. 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.

NOTE: Binary -a and -o are inherently ambiguous. Use test EXPR1 && test EXPR2 or test EXPR1 \|\| test EXPR2 instead.

NOTE: \[ honors the --help and --version options, but test does not. test treats each of those as it treats any other nonempty STRING.

NOTE: your shell may have its own version of test and/or \[, which usually supersedes the version described here. Please refer to your shell's documentation for details about the options it supports.

Errors are reported with the expression echoed back and a caret under the argument at fault whenever stderr is a terminal; anything else reading stderr gets the usual single-line message.

## VERSION

v(uutils coreutils) 0.12.0
