Como posso alterar o diretório em que um comando pensa que está sendo executado?

Como posso alterar o diretório em que um comando pensa que está sendo executado?

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 cdprimeiro 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 cdprimeiro)?

Se for possível, usarei isso em crontab, pois a ideia de usar cdali me assusta.

Responder1

Por que usar cdno crontab te assusta?

Observe que se você quiser mudar de diretório temporariamente e depois voltar, você pode usar pushdepopd

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

informação relacionada