Команда TAIL в Linux. Описание и примеры
Написать статью
Войдите, чтобы писать статьи

Команда tail

2

Команда tail в Linux

Описание команды tail

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

Синтаксис

tail опции ФАЙЛ

ФАЙЛ — это один или несколько файлов, записанных через через пробел, строки которых необходимо вывести.

Если указывается несколько файлов, то выводится последние N строк из каждого файла. Перед началом вывода строк каждого файла выводится имя файла.

Опции

-n LINES или --lines=LINES или --lines=+LINES
Задает количество строк, которое необходимо вывести.
LINES — количество первых строк из файла, которое нужно вывести.
Если перед LINES указан знак +, то выводится все содержимое файла, кроме первых N-1 строк (где N=LINES), то есть начиная со строки с номером N.
-c BYTES или --bytes=BYTES или --bytes=+BYTES
Задает количество байт, которое необходимо вывести.
BYTES — количество последних байт из файла, которое нужно вывести.
Если перед значением BYTES указан знак +, то выводится все содержимое файла, кроме первых N-1 байт (где N=BYTES), то есть начиная с байта с номером N.

Значение BYTES можно указать с суффиксом: b (512 байт), kB (1000 байт), MB (1000*1000), M (1024*1024), GB (1000*1000*1000), G (1024*1024*1024), T, P, E, Z, Y.
Также можно использовать двоичные приставки: KiB=K, MiB=M и так далее.

-f
Отслеживать появление новых строк в файле. Выводить последние строки файла по мере их появления.
По умолчанию tails следит за дескриптором файла (--follow=descriptor), то есть, например, если во время отслеживания файл будет переименован, то это не повлияет на выполнение команды.
--follow=descriptor
Отслеживать дескриптор файла. То же самое, что и просто -f (см. описание выше для опции -f).
--follow=name
Отслеживать файл по имени (не по дескриптору). См. выше описание опции -f
--retry
Пытаться открыть файл, если он недоступен. Опция используется только при отслеживании файла, то есть совместно с опцией -f или --follow={name,descriptor}
Опцию удобно использовать при отслеживании файлов логов, которые могут ротироваться, то есть отслеживаемый файл периодически может быть недоступен.
-F
То же самое, что и --follow=name --retry. Отслеживать файл по имени; пытаться открыть, если недоступен.
--max-unchanged-stats=N
Используется совместно с опцией --follow=name. Повторно открывает файл, размер которого не изменился после N проверок (по умолчанию 5), чтобы проверить был ли файл переименован (например, это ротируемый файл логов) или выполнен unlink.
--pid=PID
Прекратить отслеживание, если процесс с идентификатором PID умирает. Используется совместно с опцией -f.
-s или --sleep-interval=N
Делать паузу примерно N секунд (по умолчанию 1) между проверками файла. Используется совместно с опцией -f. При inotify и --pid=PID выполнять проверку процесса PID минимум один раз в N секунд.
-q или --quiet или --silent
Не печатать имена файлов.
Примечание: Имена файлов печатаются, если указано несколько файлов. Если данная опция установлена, то имена файлов не печатаются, и между содержимым разных файлов не добавляется пустая строка.
-v или --verbose
Всегда печатать имена файлов. Перед содержимым файла добавляется строка с именем данного файла.
-z или --zero-terminated
Считать, что строки в файле разделяются символом NULL.
--help
Показать справку по команде tail.
--version
Показать версию утилиты tail.

Примеры использования команды tail

Рассмотрим несколько примеров использования команды tail в Linux.

Вывод последних строк файла на экран

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

tail myfile.txt

Вывести последние 25 строк файла:

tail -n25 myfile.txt

Вывод нескольких последних байт файла

Вывести содержимое последних 100 байт файла:

tail -c100 myfile.txt

Вывести содержимое последнего мегабайта файла (здесь используется суффикс M):

tail -c1M myfile.txt

Вывод последних строк из нескольких файлов

Вывести последние 3 строки из каждого файла:

tail -n3 myfile.txt myfile2.txt

Результат:

==> myfile.txt <==
Ubuntu MATE
Xubuntu
Lubuntu

==> myfile2.txt <==
Clear Linux
Bodhi Linux
Garuda Linux

Использование tail для печати последних строк вывода другой команды

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

Выполнить команду ls -t и вывести только последние 5 строк. Команда ls -t выводит на экран список файлов в директории и сортирует их по времени изменения (так как указан ключ -t). В данном примере будут выведены не все файлы, а только последние 5.

ls -t | tail -n5

Вывести содержимое файла командой cat, но напечатать только последние 12 строк:

cat /var/log/Xorg.0.log | tail -n12

Отслеживание изменений в файлах логов

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

Отслеживать появление новых строк в файле /var/log/messages и выводить последние 20 строк файла:

tail -n20 -F /var/log/messages

Предыдущая команда имеет особенность, заключающуюся в том, что, например, если во время отслеживания файл будет очищен или заменен другим файлом, то после этого команда tail напечатает все содержимое файла. Если такое поведение неприемлемо, то можно воспользоваться командой watch совместно с tail. Выводить последние 20 строк файла раз в 2 секунды:

watch -n2 tail -n20 myfile.txt
Лайков: +8
войдите, чтобы ставить лайки
2
  • Опубликовано: 06.05.2023

Комментарии

AlexPingPing
06.05.2023
10:41
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
отлично! годнота
x230
Активный пользователь
Активный
06.05.2023
11:58
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
+
Да встречал такое, пока делал скрипт архивирования настроек chromium. Но (помимо прочего) обошёлся командой "ls -tr1 *.ldb|tail -2"
- нужно было взять два последних *.ldb файла в каталоге $HOME/.config/chromium/Default/Local Extension Settings/cjpalhdlnbpafiamejdnhcphjbkeiagm

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила