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? ¿commandRequiere su directorio actual~/.folder?Respuestas:
Si quieres evitar el segundo
cdpuedes 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