Puede parecerle extraño, pero quiero ejecutar el comando en una carpeta específica sin cambiar la carpeta actual en el shell. Ejemplo: esto es lo que suelo hacer:
~$ cd .folder
~/.folder$ command --key
~/.folder$ cd ..
~$ another_command --key
Aunque quiero algo como esto:
~$ .folder command --key
~$ another_command --key
¿Es posible?
bash
command-line
scripts
Timur Fayzrakhmanov
fuente
fuente
~/.folder/command --key
? ¿command
Requiere su directorio actual~/.folder
?Respuestas:
Si quieres evitar el segundo
cd
puedes usarfuente
;
a&&
por si acaso. Si el cd falla (por ejemplo, porque escribió el nombre del directorio), probablemente no quiera ejecutar el comando.Sin
cd
... Ni una sola vez. Encontré dos maneras:y segundo:
fuente
Una función bash simple para ejecutar un comando en un directorio específico:
Uso:
fuente
Tenía la necesidad de hacer esto de una manera libre de bash, y me sorprendió que no haya ninguna utilidad (similar
env(1)
osudo(1)
que ejecute un comando en un directorio de trabajo modificado. Por lo tanto, escribí un simple programa en C que lo hace:El uso es así:
fuente