Je pense que cela devrait fonctionner, quelle que soit la fréquence et le moment où vous l'exécutez ...
date -d "yesterday 13:00" '+%Y-%m-%d'
la date sous Mac OSX est légèrement différente.
Pour hier
date -v-1d +%F
Pour la semaine dernière
date -v-1w +%F
Cela devrait également fonctionner, mais c'est peut-être trop :
date -d @$(( $(date +"%s") - 86400)) +"%Y-%m-%d"