Penso che dovrebbe funzionare, indipendentemente dalla frequenza e dal momento in cui lo esegui ...
date -d "yesterday 13:00" '+%Y-%m-%d'
data sotto Mac OSX è leggermente diversa.
Per ieri
date -v-1d +%F
Per la scorsa settimana
date -v-1w +%F
Anche questo dovrebbe funzionare, ma forse è troppo:
date -d @$(( $(date +"%s") - 86400)) +"%Y-%m-%d"