Calculate the time of last modification of a file
Odhiambo Washington
wash at wananchi.com
Wed Dec 27 08:08:57 PST 2006
Hiya,
I hope you had a merry Christmas ;)
I am trying to determine the time of last modification of a file,
on FreeBSD.
The following code achieves the same on Linux:
# AGE = (current time) - (time of last modification of "$FILE")
# please check your systems 'stat' command!
AGE=$(($(date +%s) - $(stat -c '%Y' "$FILE")))
test $AGE -lt $DELAY && {
echo -n yes
exit 0
}
Here is the whole bash script, just so that everything is clear:
<cut>
#!/usr/local/bin/bash
test -t 0 && trap "echo" EXIT
NAME="$1"; shift
DELAY="${1:-600}"; shift
BASE="${1:-/var/run/greydata}"; shift
NAME=${NAME//.//}
DIR=$BASE/${NAME%/*}
FILE=$DIR/${NAME##*/}
test -d "$DIR" || mkdir -p "$DIR"
test -f "$FILE" || {
> "$FILE"
echo -n yes
exit 0
}
# AGE = (current time) - (time of last modification of "$FILE")
# please check your systems 'stat' command!
AGE=$(($(date +%s) - $(stat -c '%Y' "$FILE")))
test $AGE -lt $DELAY && {
echo -n yes
exit 0
}
read <"$FILE"
echo -n no
exit 0
</cut>
The `stat -c` is illegal for FreeBSD. However I don't seem to understand
clearly what the man page for stat is telling me, to enable me make this
work.
-Wash
http://www.netmeister.org/news/learn2quote.html
DISCLAIMER: See http://www.wananchi.com/bms/terms.php
--
+======================================================================+
|\ _,,,---,,_ | Odhiambo Washington <wash at wananchi.com>
Zzz /,`.-'`' -. ;-;;,_ | Wananchi Online Ltd. www.wananchi.com
|,4- ) )-,_. ,\ ( `'-'| Tel: +254 20 313985-9 +254 20 313922
'---''(_/--' `-'\_) | GSM: +254 722 743223 +254 733 744121
+======================================================================+
What is mind? No matter.
What is matter? Never mind.
-- Thomas Hewitt Key, 1799-1875
More information about the freebsd-questions
mailing list