Описание команды tail
Синтаксис
ФАЙЛ — это один или несколько файлов, записанных через через пробел, строки которых необходимо вывести.
Если указывается несколько файлов, то выводится последние N строк из каждого файла. Перед началом вывода строк каждого файла выводится имя файла.
Опции
LINES — количество первых строк из файла, которое нужно вывести.
Если перед LINES указан знак +, то выводится все содержимое файла, кроме первых N-1 строк (где N=LINES), то есть начиная со строки с номером N.
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 и так далее.
По умолчанию tails следит за дескриптором файла (--follow=descriptor), то есть, например, если во время отслеживания файл будет переименован, то это не повлияет на выполнение команды.
Опцию удобно использовать при отслеживании файлов логов, которые могут ротироваться, то есть отслеживаемый файл периодически может быть недоступен.
Примечание: Имена файлов печатаются, если указано несколько файлов. Если данная опция установлена, то имена файлов не печатаются, и между содержимым разных файлов не добавляется пустая строка.
Примеры использования команды 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
Комментарии
10:41
11:58
Да встречал такое, пока делал скрипт архивирования настроек chromium. Но (помимо прочего) обошёлся командой "ls -tr1 *.ldb|tail -2"
- нужно было взять два последних *.ldb файла в каталоге $HOME/.config/chromium/Default/Local Extension Settings/cjpalhdlnbpafiamejdnhcphjbkeiagm