Разработчик(и) | Различные разработчики открытого и коммерческого ПО |
---|---|
Написано в | С |
Операционная система | Unix , Unix-подобный , V , Plan 9 , Inferno , MSX-DOS , FreeDOS |
Платформа | Кроссплатформенный |
Тип | Команда |
Лицензия | План 9: Lucent Public License или GPLv2 или MIT License coreutils : GPLv3+ |
tail — программа, доступная в Unix , Unix-подобных системах, FreeDOS и MSX-DOS, используемая для отображения конца текстового файла или переданных данных.
Версия, tail
входящая в состав GNU coreutils, была написана Полом Рубином, Дэвидом Маккензи, Яном Лэнсом Тейлором и Джимом Мейерингом. [1] Команда доступна в виде отдельного пакета для Microsoft Windows как часть коллекции UnxUtils собственных портов Win32 распространенных утилит GNU Unix-like. [2] Версия FreeDOS была разработана М. Эйтчисоном. [3] Команда также является частью ASCII 's MSX-DOS2 Tools для MSX-DOS версии 2. [4]tail
CCZE похож на хвост, но отображает свои выходные данные в цвете. [5]
pctail похож на CCZE. Это цветной tail, запрограммированный на Python , который отслеживает и раскрашивает вывод syslog. [6]
Inotail был реализацией, использующей интерфейс ядра Linux inotify (представленный в версии 2.6.13 в августе 2005 года) для проверки доступности новых данных вместо опроса каждую секунду, как это делал оригинальный tail. [7] Однако более новые версии [ which? ] tail также начали использовать inotifiy, когда это было возможно, поэтому Inotail стал устаревшим и больше не поддерживается.
MultiTail не только отображает файлы журналов в цветах, но и может объединять, фильтровать, прокручивать назад и разделять окно терминала на подокна. [8] Это более или менее комбинация tail, sed , watch , CCZE/pctail, grep , diff , Beeper и других.
Синтаксис команды :
хвост [опции] <имя файла>
По умолчанию tail выводит последние 10 строк своего ввода на стандартный вывод . С помощью параметров командной строки можно изменить объем вывода и единицы (строки, блоки или байты).
В следующем примере выводится только последняя строка отчетов:
$ tail -n1 report-13* ==> report-1301 <== Общий объем производства за январь 2013 года составил 523 тонны==> report-1302 <== Общий объем производства за февраль 2013 года составил 272 тонны==> report-1303 <== Общий объем производства за март 2013 года составил 623 тонны
Этот пример выводит последние 4 символа отчетов, молча подавляя имена файлов. Обратите внимание, что подсчет включает символ новой строки в конце каждой строки, поэтому вывод не включает начальный пробел, который можно было бы ожидать.
$ tail --silent -c4 отчет* 523 272 623
В этом примере показаны все строки отчета, начиная со второй строки:
хвост -n +2 отчет
Используя старый синтаксис (все еще используемый в старой версии Sun Solaris, поскольку опция -n не поддерживается), последние 20 строк и последние 50 байтов имени файла можно отобразить с помощью следующей команды:
хвост -20 имя файла хвост -50c имя файла
Однако этот синтаксис теперь устарел и не соответствует стандарту POSIX 1003.1-2001. Даже если он все еще поддерживается в текущих версиях, при использовании с другими опциями (например, -f, см. ниже) эти переключатели могут вообще не работать.
Как и для всех команд Unix, используйте страницы руководства в работающей системе для получения информации о конкретных параметрах и действиях.
tail имеет два специальных параметра командной строки -f
и -F
(follow), которые позволяют отслеживать файл. Вместо того, чтобы просто отобразить последние несколько строк и выйти, tail отображает строки, а затем отслеживает файл. По мере добавления новых строк в файл другим процессом tail обновляет отображение. Это особенно полезно для мониторинга файлов журналов. Старые версии tail по умолчанию опрашивают файл каждую секунду, но tail из GNU coreutils начиная с версии 7.5 поддерживает инфраструктуру inotify, представленную в ядре Linux версии 2.6.13 в августе 2005 года, которая проверяет файл только тогда, когда ядро уведомляет об изменениях.
Следующая команда отобразит последние 10 строк сообщений и добавит новые строки к отображению по мере добавления новых строк к сообщениям :
хвост -f /var/adm/messages
Чтобы продолжать отслеживать журнал даже в случае его повторного создания, переименования или удаления в ходе ротации журналов, по крайней мере реализации BSD и GNU предоставляют опцию -F
, которая полезна в случаях, когда пользователь отслеживает файл журнала, который ротируется .
хвост -F /var/adm/messages
Чтобы прервать tail во время мониторинга, нажмите Ctrl+C. Эту команду можно запустить «в фоновом режиме» с помощью , см. управление заданиями .&
Если пользователю необходимо отслеживать результат выполнения команды, можно использовать команду watch .
Существует режим GNU Emacs , который эмулирует функциональность tail -f
, называемый auto-revert-tail-mode .