Na maioria dos casos, isso seria realmente uma ação indesejável. Muitas vezes, quando eu reexecuto o comando é especificamente para executá-los no meu contexto atual. Executar um comando de histórico e fazer com que ele atue em algo diferente da pasta atual pode até ter efeitos colaterais inesperados e indesejados.
Eu sugeriria seguir uma abordagem diferente. Primeiro, identifique qual comando precisa ser especificamente estanho de um determinado local, depois se pergunte por que eles são assim e corrija-os usando padrões padronizados.
-
Se eles precisarem carregar bibliotecas de recursos que estão em caminhos relativos ao executável, corrija-os para que eles saibam onde encontrá-los usando coisas como dirname
e $0
.
-
Se precisarem de dados, considere passar-lhes argumentos que mostrem onde encontrar os dados que não são relativos, para que possam ser reutilizados.
-
Se a origem do problema não puder ser corrigida por você, considere escrever pequenas funções de shell ou scripts de wrapper que configuram o ambiente para o executável, independentemente de quaisquer fatores que variam em seu sistema.