Por que usar cd no crontab assusta você?
Observe que, se você quiser apenas alterar temporariamente o diretório e depois voltar, poderá usar pushd e popd
Como posso executar um comando que esteja em um diretório diferente para que o comando pense que eu o executei no diretório atual?
Se um comando estiver usando basename() ou argv[0] (ou seja o que for chamado) para obter o local de onde foi chamado, e requer arquivos em seu diretório, ele pode procurar no diretório do qual você chamou o aplicativo; isto é, o errado.
Naturalmente, você pode cd para o diretório primeiro e invocá-lo lá, mas existe uma maneira de invocar o aplicativo para que ele ache que você o executou de seu diretório (sem cd ing primeiro)?
Se for possível, vou usar isso em crontab , já que o pensamento de usar cd me assusta.
Você pode criar um script como este:
#!/bin/sh
cd /dir/
yourcommand
Em seguida, salve-o em algum lugar e adicione esse script para crontab