Скрипт 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

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

Другие вопросы по тегам