Перестаньте использовать -f (часто)

Перевод статьи Stop using tail -f (mostly) с любезного согласия Brian Storti

Я заметил, что многие используют tail -f для мониторинга изменяемых файлов, в основном в лог-файлах. Если вы - один из таких пользователей, позвольте мне посоветовать лучшую альтернативу: less +F

На самом деле, документация по less объясняет, что для чего нужен флаг +F:

Перезод вперед, попытка чтения при достижения конца файла. Обычно эта команда используется в конце заданного файла. Это способ следить за "хвостом" файла, который растет во время просмотра. (Поведение аналогично команде "tail -f").

Документация указывает, что эта команда похожа на tail -f , но почему я думаю, что эта более оптимальна?

Проще говоря, это позволяет переключаться между навигацией и режимом просмотра. Всем знакомо: вы смотрите файл с tail -f , а затем вам нужно что-то найти в этом файле, или просто перейти вверх / вниз. Теперь вам нужно выйти из less (или открыть новую оболочку), и выполнить ack для этого файла или открыть его в Vim, и затем найти то, что вы ищете. После этого вы запускаете less снова, чтобы продолжить просмотр документа. Соответственно, нет необходимости делать это при использовании less.

Допустим, вы хотите посмотреть файл production.log:

$ less +F production.log

Important
log
information
here

Waiting for data... (interrupt to abort)

По сути, это почти то же поведение, которое вы получаете при использовании команды tail .

Теперь, скажем, появляется что-то интересное, и вы хотите найти все вхождения "Foo". Вы можете нажать Ctrl-C , чтобы перейти к "нормальному" режиму less (как если бы вы открыли файл без флага + F), затем у вас есть все нормальные возможности less, которые следовало ожидать, в том числе, поиск с /foo.

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

Когда не стоит использовать less

Если вам нужно просмотреть несколько файлов одновременно, tail -f может фактически дать вам лучший результат. Будет отображено что-то вроде этого:

$ tail -f *.txt

== > file1.txt < == 
содержание первого файла

== > file2.txt < == 
содержание второго файла

== > file3.txt < == 
содержание третьего файла

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

С less было бы так:

$ less +F *.txt

содержание первого файла

Показывается содержание только одного файла за раз. Если вы хотите наблюдать, что происходит во втором файле, вы должны сначала нажать Ctrl-C , чтобы перейти к нормальному режиму, а затем ввести :n , чтобы перейти к следующему буферу, а затем F снова, чтобы вернуться в режим просмотра.

В зависимости от ваших потребностей, по-прежнему может понадобиться использовать less для нескольких файлов, но большую часть времени я работаю именно с tail. Главное, что нужно знать рабочие инструменты и при этом использовать правильный набор команд.

Не нашли ответ на свой вопрос? Возможно, вы найдете решение проблемы на нашем канале в Youtube! Здесь мы собрали небольшие, но эффективные инструкции. Смотрите и подписывайтесь на наш youtube-канал!

Смотреть на Youtube

Руководства и обзоры

1 Что нужно восстановить?

Видео

MP4, AVI и HD видео хранятся на телефоне и / или по ошибке удаляются вместе с фотографиями и другими медиафайлами.

Контакты

Номера телефонов друзей и знакомых из приложения «Контакты Android», журналы вызовов; Восстановление SIM-карты.

Фото

Удалены файлы JPG / PNG из Галереи Android; фото, загруженные на мобильный, файлы повреждены после восстановления.

Смс и сообщения

Чаты WhatsApp и Facebook, текстовые сообщения в соцсетях, информация на сим-карте

2 Где пропали файлы?

На sd-карте

Фотографии и документы хранятся на SD-картах. Часто на них случайно удаляются файлы

На телефоне

Программы для восстановления не распознают внутреннее хранилище телефона как диск, но есть другие решения.

На USB флешке

Эти небольшие устройства хранения данных часто выходят из строя или на них появляются ошибки чтения.

На HDD или SSD

Несмотря на то, что настольные платформы становятся все менее популярными, проблема потери файлов всегда оставалась.