LINUX.ORG.RU

Как определить «возраст» файла до секунд командой shell?


0

0

Хочется элегантно. Научите, плиз...

Нужно одной командой понять, что файл старее скажем 24 часов,
то есть вот что-то такое:

if [ File MyFile.txt is older than 24 hours ]; then
  bla-bla
fi

Разгребать вывод ls и делать разницу между date что-то не хочется...

Спасибо!

MINUTES=10
if [ "X"`find /path/to/file -maxdepth 0 -cmin +$MINUTES` == "X" ]; then 
   echo "file older than $MINUTES minutes"; 
else 
   echo "file newer than $MINUTES minutes"; 
fi

До секунд - не получится - но, я думаю, этого достаточно?

anonymous
()
Ответ на: комментарий от jek_

Да, кстати - можно и до секунд:

SECONDS=86400

if [ $((`date +%s` - `find /path/to/file -maxdepth 0 -printf "%A@"`)) -gt $SECONDS ]; then echo "file is old enough"; fi

anonymous
()
Ответ на: комментарий от ero-sennin

Ну это уже шибко сложно. Кроме того, и stat у меня отсутствует...

jek_
() автор топика

Выводит время, прошедщее с момента последнего изменения, в секундах:

echo "$(($(date +%s) - $(stat -c '%X' spam-060511.tar)))"

Дальше см. 'man date', 'man stat'.

ddo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.