Вот чего я хочу добиться:
У меня есть веб-сайт 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