Обратите внимание, что ctime
- это время состояния изменения инода , а не время создания. Время создания, также известное как время рождения inode, иногда обозначаемое как btime
, доступно не для всех Unix или всех файловых систем.
Например, в Linux время рождения записывается в большинстве собственных файловых систем, но в настоящее время нет API для его получения.
В любом случае, это последний раз, когда индексный дескриптор ожил. Это не отражает время, когда данные были помещены туда (что обычно происходит после создания inode), и не обязательно время, когда файл был связан с каталогом (по имени, которое вы в настоящее время называете), поскольку время рождения не обновляется, когда файл переименовывается или связан с другим каталогом (или таким же, как другое имя).
Лучше всего использовать время последней модификации. Это лучше отражает возраст данных в файле.
С помощью GNU find
вы можете использовать:
find /directory -mindepth 1 -maxdepth 1 -type d -printf '%P %TY/%Tm/%Td\n'
С zsh
:
zmodload zsh/stat
(cd /directory && zstat -LF '%Y/%m/%d' +mtime -- *(D/))
(дает вам отсортированный список по сравнению с find
. Вы можете отключите сортировку с помощью квалификатора glob oN
или выполните сортировку по времени модификации с помощью om
)