echo 20171231 | xargs -i date -d "{} +1 day" | xargs -i date -d "{} -1 month"
**Fri Dec 1 00:00:00 PST 2017**
Nesse caso, quando os comandos de formatação de data são canalizados, recebo 1º de dezembro.
echo 20171231 | xargs -i date -d "{} +1day -1 month"
Sat Dec 2 00:00:00 PST 2017
Considerando que, quando a formatação da data é incluída em um único comando de dados, obtém-se o resultado como 2 de dezembro.
No comando acima, parece que -1 mês está tendo precedência sobre +1 dia.
Alguém pode me ajudar a entender como isso está funcionando?