Условные выражения, используемые в операторе test, строятся на основе проверки файловых атрибутов, сравнения строк и обычных арифметических сравнений. Сложные выражения строятся из следующих унарных или бинарных операций ("элементарных кирпичиков"):
Верно, если файл с именем file существует.
Верно, если file существует и является специальным файлом блочного устройства.
Верно, если file существует и является специальным файлом символьного устройства.
Верно, если file существует и является каталогом.
Верно, если файл с именем file существует.
Верно, если файл с именем file существует и является обычным файлом.
Верно, если файл с именем file существует и для него установлен бит смены группы.
Верно, если файл с именем file существует и является символической ссылкой.
Верно, если файл с именем file существует и для него установлен "sticky'' bit.
Верно, если файл с именем file существует и является именованным каналом (FIFO).
Верно, если файл с именем file существует и для него установлено право на чтение
Верно, если файл с именем file существует и его размер больше нуля.
Верно, если дескриптор файла fd открыт и указывает на терминал.
Верно, если файл с именем file существует и для него установлен бит смены пользователя.
Верно, если файл с именем file существует и для него установлено право на запись.
Верно, если файл с именем file существует и является исполняемым.
Верно, если файл с именем file существует и его владельцем является пользователь, на которого указывает эффективный идентификатор пользователя.
Верно, если файл с именем file существует и принадлежит группе, определяемой эффективным идентификатором группы.
Верно, если файл с именем file существует и является сокетом.
Верно, если файл с именем file существует и изменялся с тех пор, как был последний раз прочитан.