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

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

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

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

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

12
01.09.2011, 16:54
3 ответа

Со значением по умолчанию монтирует опции, времена доступа обрабатываются специальным способом на Linux:

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

relatime смонтируйте, что опция была сделана опцией по умолчанию начиная с ядра Linux 2.6.30. Это - причина ls --time=atime не список, что Вы ожидаете.

Решение: Для использования строгого поведения (прежней версии) для atime используют strictatime смонтируйте опцию (например, в /etc/fstab).

Примечание: Для завершенного отключения обновлений atime можно использовать noatime.

14
27.01.2020, 19:55
  • 1
    Это помогло.Спасибо. Сколько медленнее будет система быть с strictatime? –  xralf 14.09.2011, 17:34
  • 2
    atime uptades является довольно дорогостоящим (один запланированный доступ к диску для обновления inodes каждый раз, когда к их содержанию файла получают доступ). В частности, если много маленьких файлов включено, atime обновления мог бы удвоить загрузку диска. Большую часть времени программы, полагающиеся на времена доступа только, хотят проверить ли atime> mtime или нет. Так, новая опция по умолчанию relatime сохраняет совместимость для тех программ. На самом деле очень немного программ все еще полагаются на это, и часто безопасно использовать noatime. –  Stéphane Gimenez 14.09.2011, 18:46
  • 3
    мне нравится strictatime функция, поскольку я пробую его сегодня, но если бы это сделает систему медленной, я хотел бы установить strictatime только в определенных каталогах, если это будет возможно. –  xralf 14.09.2011, 19:25
  • 4
    Хорошо на практике, это - самое большее 1% или на 2% медленнее, возможно, до 5% на сервере с высокой загрузкой диска. Ну, если Вы действительно заботитесь о производительности, возможно ограничить обновления atime определенного каталога с помощью специализированной фс, смонтированной с strictatime это использовало бы этот каталог в качестве точки монтирования. –  Stéphane Gimenez 14.09.2011, 19:59

Можно выключить время доступа, записывая для некоторых файловых систем (искать 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 кэш.

2
27.01.2020, 19:55
  • 1
    Когда я ввожу ls -l --time=atime время не изменяется (я предполагаю, что столбец со временем является atime), и порядок сортировки не изменяется, файлы с последним atime должны быть вначале или в конце списка (если бы к ним в последний раз получили доступ). –  xralf 01.09.2011, 13:04
  • 2
    @xralf Сделал Вы повторяете обоих touch и ls? Я отредактировал ответ для создания этого более очевидным. –  rozcietrzewiacz 01.09.2011, 14:51
  • 3
    Когда я ввожу сенсорный file.txt, время доступа изменяется, но когда я ввожу энергию file.txt, время доступа не изменяется. –  xralf 01.09.2011, 15:17

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

1
27.01.2020, 19:55

Теги

Похожие вопросы