tail

tail - стандартна команда операційної системи UNIX, що відноситься до фільтрів. Ця команда дозволяє переглянути останні кілька символів/рядків файлу, щоб дізнатися, які дані в ньому містяться.

Основне використання:

tail -f /logs/site/error.log

Виводить та оновлює на екрані останні рядки вказаного файлу.

Синтаксис

  tail +|- [счетчик] [l b c r] [-f] [имя_файла]

где l,b,c - указывают строки, блоки и символы соответственно; r - копирует строки из файла в обратном порядке. По умолчанию используется параметр l (выводятся строки). Значение счетчика, по умолчанию, равно 10, поэтому:

  tail имя_файла

просто выводит последние 10 строк указанного файла, а команда:

  tail -c имя_файла

выводит последние 10 символов файла.

Описание

Аргумент “счетчик” определяет начальную точку в файле. Если вы зададите положительный аргумент (+счетчик), то tail будет начинать вывод строки, отстоящей на “счетчик” слов от начала файла. При отрицательном значении счетчика (-счетчик) выводятся последние строки в файле, число которых задается значением “счетчик”. Если вы задаете только знак (+ или -) без значения, то значение счетчика, по умолчанию, все равно будет равно 10, поэтому:

tail +b имя_файла

выводит содержимое заданного файла, начиная с 10 от конца блока. Аналогично:

tail -c имя_файла

выводит последние 10 символов. Кстати, размер блока зависит от реализации, но, как правило, это 512 байт. Команда tail обычно ограничена размером буфера и выводит около 300 строк, но на практике это не является помехой. Команда tail применяется, в основном, для проверки нескольких строк файла, что позволяет идентифицировать его версию и содержимое.

Параметр -f (follow) используется для проверки хода генерации файла, создаваемого другим процессом. Например:

tail -f имя_файла

выводит последние 10 строк, затем на 10 секунд деактивизируется, после чего считывает файл снова. Таким образом, вы можете видеть как файл увеличивается в размере (строка за строкой). Команда tail воспринимает только один аргумент имени файла.

Когда не указывается имя файла, то информация берется со стандартного ввода.

Выходная информация фильтра tail может направляться по каналу на принтер или переадресовываться в файл. В следующем примере фильтр tail посылает последние 5 строк файла file1 по каналу на принтер:

tail -5 file1 | lpr

В операционной системе UNIX существет еще команда head, аналогичная команде tail. Разница между ними состоит в том, что команда head выводит строки с начала файла.

Примеры

Вывести 10 строк с конца файла:

tail filename

Вывести 20 символов с конца файла:

tail -c 20 filename

Вывести 15 строк в обратном порядке:

tail -15 -r filename

Просматривать файл с конца в процессе его создания:

tail -f filename

Отсортировать последние 20 строк файла:

tail -20 filename | sort

Пример использования с grep

Выводим/не_выводим только строки по указанному шаблону