Я знаю, что моя файловая система хранит время изменения файла в миллисекундах, но я не знаю, как получить доступ к этой информации через PHP. Когда я делаю ls --full-time
, я вижу это:
-rw-r--r-- 1 nobody nobody 900 2012-06-29 14:08:37.047666435 -0700 file1
-rw-r--r-- 1 nobody nobody 900 2012-06-29 14:08:37.163667038 -0700 file2
Я предполагаю, что числа после точки - миллисекунды.
Итак, я понимаю, что могу просто использовать ls
и отсортировать его по времени модификации, например:
$filelist = `ls -t`;
Однако каталог иногда имеет огромное количество файлов, и я заметил, что ls
может быть довольно медленным в этих обстоятельствах.
Поэтому вместо этого я использовал find
, но у него нет переключателя для сортировки результатов по времени модификации. Вот пример того, что я делаю сейчас:
$filelist = `find $dir -type f -printf "%[email protected] %p\n" | sort -n | awk '{print $2}'`;
И, конечно же, это не сортируется до миллисекунд, поэтому файлы, созданные за одну секунду, иногда перечисляются в неправильном порядке.