
Como posso executar um comando que está em um diretório diferente para que o comando pense que o executei no diretório atual?
Se um comando estiver usando basename()
ou argv[0]
(ou como é chamado) para chegar de onde foi chamado e exigir arquivos em seu diretório, ele poderá procurar no diretório de onde você chamou o aplicativo; ou seja, o errado.
Claro, você pode cd
primeiro acessar o diretório e invocá-lo lá, mas existe uma maneira de invocar o aplicativo para que ele pense que você o executou a partir de seu diretório (sem cd
primeiro)?
Se for possível, usarei isso em crontab
, pois a ideia de usar cd
ali me assusta.
Responder1
Por que usar cd
no crontab te assusta?
Observe que se você quiser mudar de diretório temporariamente e depois voltar, você pode usar pushd
epopd
Responder2
Você pode fazer um script assim:
#!/bin/sh
cd /dir/
yourcommand
Em seguida, salve-o em algum lugar e adicione esse script ao crontab