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

2

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.

    
por Doddy 18.08.2011 / 15:10

2 respostas

3

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

    
por 18.08.2011 / 15:21
2

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

    
por 18.08.2011 / 15:55

Tags