Tail -f последний измененный файл в папке
Я пытаюсь использовать tail -f
проследить за входом в файл в указанной папке. Я могу сделать это с помощью простой команды tail -f [path to file]
но есть ли способ, которым я могу иметь команду, которая запускает и отслеживает самый последний / последний измененный файл в папке. Не специалист в этой области, поэтому любая помощь очень ценится
2 ответа
Вы могли бы запустить ls -tp | sort | grep -v / | tail -n 1
команды и поставить их через for
цикл затем запустить только tail -F
Команда против самого нового файла, чтобы следить за изменениями содержимого. Вы также можете рассмотреть ls -tpr | grep -v / | tail -n 1
команды вместо.
for VAR in $(ls -tp | sort | grep -v / | tail -n 1); do tail -F $VAR; done
или же
for VAR in $(ls -tpr | grep -v / | tail -n 1); do tail -F $VAR; done
Дополнительные ресурсы
ls
-t sort by modification time, newest first -p, --indicator-style=slash append / indicator to directories -r, --reverse reverse order while sorting
sort
grep
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
tail
-n, --lines=[+]NUM output the last NUM lines, instead of the last 10; or use -n +NUM to output starting with line NUM
Вы можете использовать MultiTail, доступный как стандартный пакет во многих дистрибутивах.
Пример 1: объединить два файла журнала в одном окне с разными цветами
multitail -ci green /var/log/yum.log -ci yellow -I /var/log/mysqld.log
Пример 2: Показать пять лог-файлов, объединяя два в один столбец
multitail -s 2 -sn 1,3 /var/log/mysqld.log -I /var/log/xferlog /var/log/monitorix /var/log/ajenti.log /var/log/yum.log
Источник: MultiTail - одновременный мониторинг нескольких файлов в одном терминале Linux.