O problema porque cron executa a tarefa com sh . &> é um atalho para redirecionar os stderr e stdout para o mesmo arquivo em bash , não em sh .
Em sh , seu comando:
cat /home/dbk/.bash_aliases &> /home/dbk/Desktop/junk
significa executar dois comandos separadamente:
-
Executar
cat /home/dbk/.bash_aliasesno plano de fundocat /home/dbk/.bash_aliases & -
Trunque o arquivo indesejado.
> /home/dbk/Desktop/junk
Portanto, você deve usar bash para executar seu comando em crontab :
*/5 * * * * bash -c "cat /home/dbk/.bash_aliases &> /home/dbk/Desktop/junk"
ou usando uma maneira mais portátil:
*/5 * * * * cat /home/dbk/.bash_aliases > /home/dbk/Desktop/junk 2>&1