Время изменения Solaris 10

В Solaris 8, когда мы обращаемся к файлу, время доступа изменяется, но время изменения остается таким же. Но в Solaris 10 мы видим, что при доступе к файлу изменяются время доступа и изменение времени. Мы проверили at , mt используя truss -v lstat -t lstat ls -l <file> .

Это поведение Solaris 10?

2 Solutions collect form web for “Время изменения Solaris 10”

Не на UFS или ZFS (или на любой другой стандарт fs). Что вы используете для доступа к файлу? Какую файловую систему вы используете?

 $ touch test $ stat test | grep "^[AM]" Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff) Access: 2013-02-20 13:04:25.597883067 +0000 Modify: 2013-02-20 13:04:25.597883067 +0000 $ cat test $ stat test | grep "^[AM]" Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff) Access: 2013-02-20 13:04:38.117719129 +0000 Modify: 2013-02-20 13:04:25.597883067 +0000 $ echo test > test $ stat test | grep "^[AM]" Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff) Access: 2013-02-20 13:04:38.117719129 +0000 Modify: 2013-02-20 13:04:54.739753877 +0000 $ cat test test $ stat test | egrep "^[AM]" Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff) Access: 2013-02-20 13:04:59.629405264 +0000 Modify: 2013-02-20 13:04:54.739753877 +0000 

То, что вы видите что-то, не делается правильно (Human error). Пример: я создал файл с vi, вы увидите, что at = mt :

 truss -v lstat -t lstat ls -l count_files.awk lstat64("count_files.awk", 0xFFBFF5B8) = 0 d=0x04010003 i=58647 m=0100755 l=1 u=0 g=0 sz=674 at = Feb 20 14:05:56 CET 2013 [ 1361365556.951290423 ] mt = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ] ct = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ] bsz=1024 blks=3 fs=zfs -rwxr-xr-x 1 root root 674 Feb 20 14:05 count_files.awk 

Теперь я снова открою файл с vi, но выйду : q!

Заметим, что at не равно mt .

 truss -v lstat -t lstat ls -l count_files.awk lstat64("count_files.awk", 0xFFBFF648) = 0 d=0x04010003 i=58647 m=0100755 l=1 u=0 g=0 sz=674 at = Feb 20 14:07:58 CET 2013 [ 1361365678.550493967 ] mt = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ] ct = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ] bsz=1024 blks=3 fs=zfs -rwxr-xr-x 1 root root 674 Feb 20 14:05 count_files.awk 

Теперь давайте сделаем еще одно испытание: Откройте файл с vi и выйдите, но вместо: q! давайте сделаем: wq! (хотя мы ничего не изменили, vi все равно сохранит содержимое в файле)

 truss -v lstat -t lstat ls -l count_files.awk lstat64("count_files.awk", 0xFFBFF5F8) = 0 d=0x04010003 i=58647 m=0100755 l=1 u=0 g=0 sz=674 at = Feb 20 14:09:26 CET 2013 [ 1361365766.879205630 ] mt = Feb 20 14:09:28 CET 2013 [ 1361365768.147368630 ] ct = Feb 20 14:09:28 CET 2013 [ 1361365768.147368630 ] bsz=1024 blks=3 fs=zfs -rwxr-xr-x 1 root root 674 Feb 20 14:09 count_files.awk 

Насколько мне известно, изменения времени при чтении вызывают и изменяют время выполнения записи (вызов записи).

  • Разница между `ls -c` и` ls -t`
  • Копирование только новых файлов
  • Кодирование видео с Unix Timestamps + ms
  • Возможно ли обновлять измененные времена только без копирования файлов при использовании rsync?
  • find-cnewer сломан на NTFS-3g?
  • как запустить время запуска команды и время окончания команды в txt-файле, используя cygwin
  • разница во времени между двумя датами ISO8601 с дробной второй частью
  • Можете ли вы прочитать обновленное mtime, но при чтении содержимого они еще не обновлены?
  • Проверка отметки времени Unix с использованием BASH
  • Каков наиболее эффективный способ добавления миллисекунд к этому коду?
  • Проверить, был ли файл изменен после даты в имени файла
  • Как я могу изменить дату, измененную для папки, на последний измененный файл внутри?
  • Linux и Unix - лучшая ОС в мире.