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