Скрипт bash для поиска последнего файла журнала
Я хочу найти последний файл журнала (расширение.log) в каталоге, используя скрипт bash.
Сначала моя простая попытка работала нормально
filename=`ls -t -c1 | head -1`
Но когда я признаю, что файлы, отличные от лог-файлов, могут быть найдены, это не работает из-за расширения по шаблону
filename=`ls -t -c1 *.log | head -1`
Поэтому я считаю, что мне нужно прочитать команду ls в массив или файл, а затем обработать оттуда.
1 ответ
Решение
Вроде работает нормально....
Kaizen ~/so_test $ ls -lt -c1 z*
-rw-r--r-- 1 Nitin None 318 Jun 5 21:59 ztestfile1
-rwxrwxrwx 1 Nitin None 398 Jun 5 21:41 zawk1.sh
В качестве альтернативы вы можете попробовать свои силы с помощью find ....
Kaizen ~/so_test $ find . -mtime 0 -a -mtime -1 -iname "z*" | xargs ls -ltr | sort -k9 -r
-rw-r--r-- 1 Nitin None 318 Jun 5 21:59 ./ztestfile1
-rwxrwxrwx 1 Nitin None 398 Jun 5 21:41 ./zawk1.sh
но для этого потребуется немного твика, чтобы удовлетворить ваши конкретные потребности.