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

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

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

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

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

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 чтобы вы могли видеть эффект, не будучи ограниченным небольшими границами.

  • Как я могу захватить два столбца вывода ls в сценарии bash
  • Почему ссылки на перезагрузку, выключение и poweroff на systemctl?
  • Отключить раскраску для ls в файловых системах NTFS
  • Список только обычных файлов (но не каталогов) в текущем каталоге
  • Что означает «d» в результатах ls -al и что называется этим слотом?
  • выполнить команду в определенном диапазоне каталогов
  • ls или find, чтобы исключить двоичные файлы
  • Сортировка ls по времени, когда слишком много файлов для одного вызова
  • В чем смысл символа «#» перед владельцем?
  • Список только файлов, имеющих определенный символ в позиции
  • Возможно ли изменить поведение команды по умолчанию?
  • Можно ли игнорировать скрытые файлы Windows?
  • Linux и Unix - лучшая ОС в мире.