Использование даты / времени файла в качестве метаданных: надежно?

Самый легкий способ сделать это xset m. Общий формат:

xset m ACCELERATION THRESHOLD

где УСКОРЕНИЕ определяет, сколько раз быстрее курсор переместит, чем скорость по умолчанию, когда курсор переместит больше, чем ПОРОГОВЫЕ пиксели в скором времени. УСКОРЕНИЕ может быть частью, поэтому если Вы хотите замедлить мышь, можно использовать 1/2, и если 3 немного слишком быстро, но 2 является слишком медленным, можно использовать 5/2 и т.д.

Например:

xset m 1/2 4

Для получения текущих значений используйте:

xset q | grep -A 1 Pointer

Для получения дополнительной информации посмотрите здесь.

Необходимо смочь войти сессию Gnome, поразить AltF2, чтобы открыть диалоговое окно выполнения, ввести gnome-terminal и хит входит. Затем работайте xset команда в окне терминала, которое появляется. Можно сделать все это, не используя мышь. Если по некоторым причинам терминал не фокусируется, когда он открывается, необходимо смочь переключить на него использование AltTab.

6
29.08.2015, 21:22
2 ответа

Большинство систем Unix не отслеживают время создания файлов. Они отслеживают время модификации файла, которое обновляется каждый раз при записи в файл. Если файлы записываются последовательно при их создании (т. Е. Первый файл полностью записывается до создания второго файла) и не изменяются позже, то порядок времени модификации будет таким же, как и порядок создания файлов, но в более сложных сценариях это может быть не то же самое.

Помимо времени модификации (mtime), в любых системах Unix есть еще две отметки времени файла: время доступа (atime) и время изменения inode (ctime). Время доступа обновляется при чтении файла, но некоторые системы (в частности, Linux по умолчанию) не всегда обновляют его из соображений производительности. Время изменения inode обновляется, когда некоторые метаданные об изменении файла (имя, разрешения и т. Д.; Также, когда файл записывается, но не когда он читается, даже если время изменяется). Ни atime, ни ctime вам не пригодятся.

Многие исторические системы Unix отслеживали временные метки файлов с разрешением в одну секунду. Современные системы Unix часто имеют лучшее разрешение, но для этого необходимо, чтобы на него обратили внимание несколько участников:

  • Ядро, которое вы используете, должно поддерживать это более точное временное разрешение.
  • Файловая система должна иметь возможность хранить это более точное временное разрешение.
  • Любой компонент в цепочке (например, сервер NFS для файла в NFS) должен поддерживать это более точное временное разрешение.
  • Любой инструмент, используемый для копирования файлов (архиватор, сетевой синхронизатор,…), должен иметь возможность сохранять более точное временное разрешение, а не только секунды.
  • Приложение, считывающее время файла, должно учитывать субсекундное разрешение. Классические программные интерфейсы Unix не поддерживают субсекундное разрешение временных меток файлов, поэтому приложениям необходимо использовать относительно современный API (, стандартизированный в POSIX: 2008 - все еще относительно недавно, поскольку его внедрение было не очень быстрым).

Даже если все в цепочке поддерживают наносекундные временные метки, файлы будут иметь разные временные метки только в том случае, если они фактически созданы с интервалом более одного такта - то, что ядро ​​записывает наносекунды, не гарантирует, что оно заметит , что между созданием двух файлов прошло более одной наносекунды: считывание часов требует времени, поэтому это происходит не все время.Если у вас есть один поток, открывающий файл, записывающий данные и закрывающий файл перед переходом к следующему файлу, то я думаю, что на практике любая существующая системная система, которая записывает субсекундное разрешение, будет записывать разные временные метки, но вы берете небольшой риск. (Когда разные потоки записывают в файлы, даже с микросекундным разрешением, возможны коллизии временных меток - но обычно в этом случае вы не сможете полагаться на упорядочение чего-либо.)

Так что это возможно, и это надежно, поскольку пока компьютеры не работают намного быстрее, чем сейчас, при условии, что все используемые вами инструменты поддерживают разрешение менее секунды.Но вы находитесь во власти сбоя часов или инструмента, который вы не проверяли для поддержки субсекундных меток времени. Я рекомендую полагаться на имена файлов, там меньше всего может пойти не так.

8
27.01.2020, 20:26

atime ctime или mtime ?

Чтобы запомнить, что есть что: прочитайте их в алфавитном порядке

  • время может быть обновлено отдельно
  • ctime обновит atime
  • mtime обновит как atime, так и ctime.

Система может подделать atime или ctime, используя mtime. (лень)

0
14.11.2021, 00:40

Теги

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