Назад | Перейти на главную страницу

Linux - Дата последнего измененного файла в папке

Вот чего я хочу добиться:

У меня есть веб-сайт apache, и на нем я хочу отобразить что-то вроде

Latest website update: 01/12/2011 at 6h32 AM

У меня была идея, как это сделать. Я мог бы написать ежечасный скрипт, который проверяет дату последнего измененного файла в / var / www. А затем сохраните это значение в файле или в базе данных для быстрого доступа.

Как я могу это сделать, и если у вас есть идея получше, поделитесь ею со мной.

Это дает точный результат, который вы просили в своем вопросе:

echo "Latest website update: $(date -d @$(find /var/www -type f -exec stat -c%Z {} \; | sort | tail -1) "+%d/%m/%Y at %lh%M %p")"

Последнее обновление сайта: 12.02.2011, 20:00

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

$lastupdated = `ls -ltr <directory> | tail -n 1`

нужно немного разрезать строку, но в основном это ваш последний обновленный файл + дата.

Вы ищете какой-нибудь файл в и под данный каталог?

Для одного каталога ответ @ Flash работает нормально. (Хотя ls -lt /var/www | head -n 2 | cut -c40-53 немного быстрее, за счет дополнительной \n в результате)

Для всего каталога дерево, вы можете использовать вариант

`find /var/www  -type f -printf '%T@\t%TH:%TM on %Tx\t%p\n' | sort -k1 -n | cut -f 2 | head -n 1`

Возможно, использование вывода GNU stat поможет. stat -x /var/www