Почему сортировка файлов по времени доступа не работает?

Я попытался использовать команду ls --time=atime

он работал в одном каталоге, но не работал в другом каталоге. Я открыл определенные файлы в vim, evince и других приложениях, но после того, как время доступа к файлам команд не было изменено.

Когда я touch file.txt время доступа изменяется, но когда я vim file.txt время доступа не изменяется.

Что здесь не так?

  • cd и ls в одном и том же вызове
  • Посмотрите, есть ли в папке несколько файлов с определенными расширениями
  • Что означает список @ после каталога?
  • Когда был открыт последний файл?
  • Что означает размер каталога в выводе команды ls -l?
  • Как заказать несколько опций команды (ls)?
  • Что делает «-t» в команде mv? Пример ниже
  • ls -ld / dir, Solaris
  • 3 Solutions collect form web for “Почему сортировка файлов по времени доступа не работает?”

    С настройками монтирования по умолчанию время доступа обрабатывается особым образом в linux:

    relatime – монтирование файловой системы с этой опцией заставляет время доступа обновляться, если они есть (до того, как обновление произошло) раньше времени модификации. Это значительно сокращает количество записей, вызванных обновлениями atime.

    Параметр relatime mount был relatime по умолчанию, поскольку linux kernel 2.6.30. Вот почему ls --time=atime не перечисляет то, что вы ожидаете.

    Решение. Чтобы использовать строгое (устаревшее) поведение для atime, используйте параметр strictatime mount (например, в /etc/fstab ).

    Примечание. Чтобы полностью отключить обновления atime, можно использовать noatime .

    Вы можете отключить запись времени доступа для некоторых файловых систем (ищите noatime в /etc/fstab ). Чтобы проверить это, вы можете попробовать touch -a file; ls -l --time=atime file touch -a file; ls -l --time=atime file , затем повторить touch -a file; ls -l --time=atime file touch -a file; ls -l --time=atime file чтобы узнать, изменяется ли он.

    Поведение ls объясняется man ls : ls -l --time=atime показывает время доступа в столбце даты / времени. Для сортировки по этому ключу необходимо использовать --sort=time .

    Если вы «время не изменилось» означает, что он показывает тот же результат, то есть либо потому, что atime отключен для файловой системы (см. /etc/fstab ), либо потому, что время доступа действительно совпадает с временем модификации ( довольно часто).

    Обратите внимание, что файлы листинга не меняют время доступа – к файлам не обращаются ls , а только кэш inode .

    Также полезно было бы при тестировании добавить флаг --full-time в ls чтобы вы могли видеть секунды и --full-time чтобы вы могли видеть эффект, не будучи ограниченным небольшими границами.

    Linux и Unix - лучшая ОС в мире.