Para tarefas cron mais complexas que o seu exemplo, eu gosto de colocar as tarefas cron em scripts em ~ / cron /, então posso comentá-las sobre quem as escreveu, porque elas estão lá e quando foram instaladas.
Uma maneira de fazer as contas no seu encontro seria assim. Eu não iria incorporar isso em um one-liner, embora eu tenha certeza que é possível com vários escapes e coisas assim:
printf "%d-%02d-%02d" 'date +%Y' $(('date +%m'-1)) 'date +%d'
(serverfault engoliu meus backticks ... acho que consegui mostrar)
IMHO, achado é melhor para remover arquivos. Procure arquivos que correspondam ao padrão anterior à data. É mais seguro e não deixa as coisas ao seu redor em períodos prolongados de queda de energia.
Pode até parecer limpo em uma linha de frente ... Vou procurar um exemplo.
Aha, aqui está um exemplo onde os arquivos "noooo" e "omg" são burlados por causa de algo no diretório ./findtest/:
$ ls -R
.:
findtest noooooo omg
./findtest:
mydb- file is * mydb-old-file.gz
$ rm 'find ./findtest/ -name mydb*'
rm: cannot remove './findtest/mydb-': No such file or directory
rm: cannot remove 'file': No such file or directory
rm: cannot remove 'is': No such file or directory
rm: cannot remove 'findtest': Is a directory
$ ls -R
.:
findtest
./findtest:
mydb- file is *
Boa maneira:
$ find ./findtest/ -name mydb* -exec rm {} \;
$ ls -R
.:
findtest noooooo omg
./findtest:
$