Команды Linux · 2 min read · Sep 20, 2025

Учебник по команде test в Linux для начинающих (с примерами)

Когда вы работаете с командной строкой Linux, иногда вам нужно протестировать определенные вещи, такие как целочисленные значения или является ли файл определенного типа. Существует встроенная утилита командной строки test, которую вы можете использовать для выполнения большинства этих сравнений и тестов.

В этом учебнике мы объясним основы этого инструмента с помощью простых примеров. Но прежде чем мы это сделаем, следует упомянуть, что все примеры в этой статье были протестированы на Ubuntu 22.04 LTS.

Команда test в Linux

Как уже упоминалось выше, команда test используется для выполнения проверок и сравнений. Вот ее синтаксис:

test EXPRESSION

А вот что говорит страница man об этой утилите:

test - проверка типов файлов и сравнение значений

Следуют некоторые примеры в формате вопросов и ответов, которые должны дать вам хорошее представление о том, как работает этот инструмент.

Примечание: Имейте в виду, что некоторые параметры командной строки, которые предоставляет test, наиболее полезны при использовании в оболочках скриптов.

Вопрос 1. Как сравнить две строки?

Просто, вам нужно использовать знак равенства (=) между ними. Например:

test howto = forge

Лучше было бы написать что-то вроде этого:

test howto = forge && echo "same"

Таким образом, если строки одинаковы, слово “same” должно быть выведено в выводе, иначе ничего не должно быть выведено.

Аналогично, вы можете использовать следующий шаблон, если хотите протестировать на неравенство.

STRING1 != STRING2

Вопрос 2. Как сравнить целые числа с помощью test?

Это также очень просто - просто сравните их, используя ‘-eq’. Например:

test 5 -eq 7 && echo "same"

Вот скриншот, показывающий, как работает этот параметр командной строки:

Аналогично, вы можете использовать ‘ -ge ‘ для проверки больше или равно, ‘ -gt ‘ для больше, ‘ -le ‘ для меньше или равно, ‘ -lt ‘ для меньше и ‘ -ne ‘ для не равно.

Вопрос 3. Как тестировать/сравнивать файлы с помощью test?

Чтобы проверить, какой из двух файлов новее, используйте ‘-nt’. Например:

test file1 -nt file2

Вот как я протестировал это на своей системе:

Другие сравнения файлов, которые вы можете выполнить, включают проверку, какой из двух файлов старше (-ot) и имеют ли два файла одинаковые номера устройства и инода (-ef).

Чтобы проверить, является ли данный файл каталогом, используйте опцию -d следующим образом:

test -d [имя_файла]

Например:

test -d new_dir

Следуют некоторые другие параметры тестирования типов файлов, которые предлагает команда ‘test’:

Результат использования команды test

Вопрос 4. Как команда test обрабатывает символические ссылки?

Команда test разыменовывает символические ссылки, хотя есть несколько исключений. Вот что говорит страница man об этом:

За исключением -h и -L, все тесты, связанные с FILE, разыменовывают символические ссылки.

В случае, если вы не в курсе, оба -h и -L проверяют, существует ли файл и является ли он символической ссылкой - поэтому их исключение имеет смысл, не так ли?

Заключение

Команда test предлагает множество опций, но в широком смысле вы можете объединить их в 3-4 категории. Мы предоставили примеры для каждой категории. Так что попробуйте их, и когда закончите, перейдите на страницу man утилиты для получения дополнительной информации.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.