Я не видел это некоторое время теперь:
Unix сексуален: кто | grep-i блондинка | дата; CD ~; разархивируйте; касание; полоса; палец; смонтируйтесь; удушье; да; время работы; umount; сон
Насколько я знаю, нет никакого места, на котором хранится эта информация. Это кодируется в файловую систему. Однако можно вручную составить список файловых систем и соответствующей точности. Я использовал бы a case
оператор для тестирования идентификатора файловой системы против списка файловых систем. Можно сделать значение по умолчанию 1, так как существует очень немного примеров, где точность составляет меньше чем 1 секунду.
Более старые версии FAT и текущие версии zip используют 2 второй точности метки времени от того, что я считал онлайн. Однако я предлагаю, чтобы Вы проверили это на наличие фактологических ошибок.
Можно получить идентификатор filsystem файла со следующей командой.
stat -f --format="%t" $file
Обычно Вы смогли бы использовать statvfs или pathconf, но они, кажется, не поддерживают способа узнать ту информацию.
По-видимому, такая функция обсуждается для будущего стандарта POSIX
мы также зарегистрируем некоторых муравьедов для pathconf улучшения для возврата гранулярности меток времени на на основание пути.
К сожалению, я не вижу очевидного способа, чтобы сделать это сегодня, даже определенным для ОС способом.
Любой подход, который пытается создать список файловых систем и поддерживает ли он подвторое разрешение, опасен. Например, ext4
кажется, поддерживает разрешение наносекунды, если inodes составляют 256 байтов, но не, если они - 128 байтов.
Составление всестороннего и точного списка было бы трудно, может потребовать корневого доступа, и это могло бы измениться завтра. Который звучит более твердым, чем просто выполнение stat
несколько раз мне.
Я только что реализовал обнаружение файловой базы данных. Сначала я устанавливаю метку времени файла на 1234 миллисекунды, а затем снова читаю ее и проверяю, является ли она точностью 1234 (с точностью не менее мс )или точностью 1000 (секунд ). То, что я узнал до сих пор, было:
Для Linux Fedora 35 с BTRFS (файловая система по умолчанию )я вижу следующую точность:
stat test1.txt
Access: 2021-11-25 19:48:58.254916839 +0000
Modify: 2021-11-22 09:54:48.694107073 +0000
Change: 2021-11-22 09:54:48.698107163 +0000
Birth: 2021-11-22 09:54:48.694107073 +0000
Однако неясно, насколько точны эти значения.
%i
уникально на каждую файловую систему, например, если Вы имеете дваext4
разделы, у каждого будет различный идентификатор. – Mikel 07.05.2011, 01:05