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_aliases
no 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