Pode parecer estranho para você, mas quero executar o comando em uma pasta específica sem alterar a pasta atual no shell. Exemplo - é o que eu costumo fazer:
~$ cd .folder
~/.folder$ command --key
~/.folder$ cd ..
~$ another_command --key
Embora eu queira algo assim:
~$ .folder command --key
~$ another_command --key
É possível?
bash
command-line
scripts
Timur Fayzrakhmanov
fonte
fonte
~/.folder/command --key
? Será que ocommand
exigir o seu diretório atual para ser~/.folder
?Respostas:
Se você quiser evitar o segundo,
cd
você pode usarfonte
;
para&&
para uma boa medida. Se o CD falhar (por exemplo, porque você digitou o nome do diretório), provavelmente não deseja executar o comando.Sem
cd
... Nem uma vez. Eu encontrei duas maneiras:e em segundo lugar:
fonte
Uma função simples do bash para executar um comando em diretório específico:
Uso:
fonte
Eu tinha uma necessidade de fazer isso de uma maneira sem bash e fiquei surpreso por não haver utilidade (semelhante
env(1)
ousudo(1)
que executa um comando em um diretório de trabalho modificado. Então, escrevi um programa C simples que faz isso:O uso é assim:
fonte