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

дата последнего изменения каталога

Есть ли способ получить дату последнего изменения каталога, включая подкаталоги? либо через сценарий оболочки, либо через php?

Спасибо!

Команда Unix "stat" предоставит эту информацию, а также одноименная функция PHP.

Вот решение оболочки, которое предполагает Linux (или, в более общем смысле, GNU find). Для простоты имена файлов, содержащие символы новой строки, не поддерживаются.

find /path/to/directory -type f -printf '%T@:%p\n' |
sort -t : -k 1 -nr |
head -n 1 |
sed -e 's/^[^:]*://'

Быстрое объяснение:
• Список всех обычных файлов в дереве; для каждого файла выведите время его модификации, двоеточие и имя.
• Сортировать по убыванию ведущего числа.
• Оставьте только первую строку.
• Удалите первое число и :.

я не уверен, что вы спрашиваете, но вы пробовали ls -la ?

или даже ... найти ./ -exec ls -lah {} \; чтобы увидеть последнюю дату всего.

(Его можно развернуть в системах * nix)

Похоже, что сценарий оболочки может усложнить ситуацию больше, чем необходимость, однако простите меня, если я не полностью понимаю вопрос.

tree будет командой, которую я бы использовал для этого

дерево синтаксиса -dfsD

Если вы хотите увидеть список всех каталогов / подкаталогов (а не каких-либо файлов) в местоположении, отсортированных (и показывающих) дату их последнего изменения, вы можете использовать следующую команду:

ls -lRt | grep ^d

Обновить: Вы можете сделать еще один шаг и ограничить вывод только датой последнего изменения и именем каталога, используя

ls -lRt | grep ^d | awk '{print $6" "$7" "$8, $9}'

Единственная проблема с любым из этих списков заключается в том, что вы не получаете полный путь к каждому каталогу, поэтому может быть сложно определить, какие каталоги являются подкаталогами.