Я пытался использовать команду
ls --time=atime
он работал в одном каталоге, но не работал в другом каталоге. Я открыл определенные файлы в vim, evince и других приложениях, но после времени доступа командного файла не изменилось.
Когда я печатаю, touch file.txt
время доступа изменяется, но когда я печатаю, vim file.txt
время доступа не изменяется.
Что здесь не так?
filesystems
files
ls
atime
xralf
источник
источник
vim file.txt
? Вы выходите из Vim:q
или:wq
? Если не пишешь,vim
не изменяешь время доступа к файлу - это умышленно..jpg
расширением, он не изменяется. Когда я открываю его в средстве просмотра изображений, оно тоже не меняется. Мне нужно, чтобы время доступа менялось при каждом чтении файла каким-либо приложением.Ответы:
С опциями монтирования по умолчанию время доступа обрабатывается особым образом в Linux:
Опция
relatime
монтирования была сделана опцией по умолчанию начиная с ядра Linux 2.6.30. Это причинаls --time=atime
не перечислять то, что вы ожидаете.Решение: Чтобы использовать строгое (устаревшее) поведение для времени, используйте
strictatime
опцию монтирования (например, в/etc/fstab
).Примечание: чтобы полностью отключить обновления atime, можно использовать
noatime
.источник
strictatime
?relatime
сохраняет совместимость для этих программ. Фактически, очень немногие программы все еще полагаются на это, и это часто безопасно для использованияnoatime
.strictatime
функция, которую я пробую сегодня, но если она замедлит работу системы, я бы хотел установить ееstrictatime
только в определенных каталогах, если это будет возможно.strictatime
который будет использовать этот каталог в качестве точки монтирования.Вы можете отключить запись времени доступа для некоторых файловых систем (ищите
noatime
в/etc/fstab
). Чтобы проверить это, вы можете попробовать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 .источник
ls -l --time=atime
время, оно не изменяется (я предполагаю, что столбец со временем является atime), и порядок сортировки не изменяется, файлы с последним временем должны быть в начале или в конце списка (если к ним обращались в последний раз) ).touch
и другоеls
? Я отредактировал ответ, чтобы сделать его более очевидным.Также при тестировании может быть полезно добавить
--full-time
флаг, чтобыls
вы могли видеть секунды и субсекунды, чтобы вы могли видеть эффект, не ограничиваясь минутными границами.источник