Com o GNU date
ou busybox
date
, as implementações mais comuns de date
encontradas em sistemas que usam o Linux como kernel:
if [ "$(date -r file +%Y%m)" = "$(date +%Y%m)" ]; then
echo "file was last modified this month"
fi
(note que para links simbólicos, olha para o mtime do alvo).
POSIXly, o mesmo pode ser alcançado com:
(
export LC_ALL=C; unset -v IFS
eval "$(date +'cur_month=%b cur_year=%Y')"
ls -Lnd file | {
read -r x x x x x month x year_or_time x &&
case $month-$year_or_time in
("$cur_month-$cur_year" | "$cur_month"-*:*)
echo "file was last modified this month"
esac
}
)