Обратите внимание, что синтаксический анализ ls
может привести к ошибкам. См. bash FAQ 99 .
Если доступен инструмент inotifywait
, вы можете сделать что-то вроде обновления символической ссылки.
#!/bin/bash
function newest_log
{
files=(*.log)
newest=${files[0]}
for f in "${files[@]}"; do
if [[ $f -nt $newest ]]; then
newest=$f
fi
done
echo $newest
}
while inotifywait -e modify target-directory; do
ln -s target-directory/$(newest_log) latest
done
Вы можете либо Запустите этот скрипт напрямую или настройте службу, такую как systemd service.