[sh]Получить дату изменения файла

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Animator1
проходил мимо

[sh]Получить дату изменения файла

Непрочитанное сообщение Animator1 » 2009-02-03 18:53:02

Необходимо определить произошли ли изменения в файле.
1. Получить дату дд.мм.гггг чч.мм.сс последнего изменения файла
2. Файл изменяется.
3. Получить дату дд.мм.гггг чч.мм.сс последнего изменения файла
4. Сравнить даты и определить произошли ли изменения.

Помогите готовым скриптом(если есть). Или подскажите как получить дату в таком формате.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

Re: [sh]Получить дату изменения файла

Непрочитанное сообщение Гость » 2009-02-03 21:02:14

Animator1 писал(а):Получить дату дд.мм.гггг чч.мм.сс последнего изменения файла
в таком формате никто дату не сравнивает. Сначала переводят в секунды от Эпохи (12 am UTC, Jan 1, 1970), а потом сравнивают числа.

Код: Выделить всё

> sh
$ file=foo
$ eval $(stat -s $file)
$ alpha_mtime=$st_mtime
$ touch $file # modify file
$ eval $(stat -s $file)
$ beta_mtime=$st_mtime
$ [ $beta_mtime -gt $alpha_mtime ] && echo file \`$file\' changed since last stat'()' call
file `foo' changed since last stat() call
впрочем, можно также вызвать `stat -f%m', если нужна только дата модификации и не хочется засорять контекст лишними переменными

stat(1) умеет и в pretty-print формати отображать информацию о файле:

Код: Выделить всё

> stat -x foo
stat -x foo
  File: "foo"
  Size: 0            FileType: Regular File
  Mode: (0644/-rw-r--r--)         Uid: ( 1001/    luser)  Gid: ( 1001/    luser)
Device: 171,3601793269   Inode: 138200    Links: 1
Access: Tue Feb  3 20:49:01 2009
Modify: Tue Feb  3 20:49:01 2009
Change: Tue Feb  3 20:49:01 2009

Гость
проходил мимо

Re: [sh]Получить дату изменения файла

Непрочитанное сообщение Гость » 2009-02-03 21:10:04

кстати, `дд.мм.гггг чч.мм.сс' противоречит даже элементарной сортировке, если уж сравнивать в таком виде (с точками), то:

Код: Выделить всё

> stat -f%Sm -t'%Y.%m.%d.%H.%M.%S' foo
2009.02.03.20.49.01
но я бы не рассчитывал на точность результата