peut-être cela vous semble étrange, mais je veux exécuter la commande dans un dossier spécifique sans changer le dossier actuel dans le shell. Exemple - c'est ce que je fais habituellement:
~$ cd .folder
~/.folder$ command --key
~/.folder$ cd ..
~$ another_command --key
Bien que je veuille quelque chose comme ça:
~$ .folder command --key
~$ another_command --key
C'est possible?
bash
command-line
scripts
Timur Fayzrakhmanov
la source
la source
~/.folder/command --key
? Est-cecommand
que votre répertoire actuel doit l'être~/.folder
?Réponses:
Si vous voulez éviter la seconde,
cd
vous pouvez utiliserla source
;
pour&&
faire bonne mesure. Si le cd échoue (par exemple parce que vous avez tapé le nom du répertoire), vous ne voudrez probablement pas exécuter la commande.Sans
cd
... Pas même une fois. J'ai trouvé deux façons:et deuxieme:
la source
Une fonction bash simple pour exécuter une commande dans un répertoire spécifique:
Usage:
la source
J'avais besoin de le faire sans bash, et j'ai été surpris qu'il n'y ait pas d'utilitaire (similaire à
env(1)
ousudo(1)
qui exécute une commande dans un répertoire de travail modifié. J'ai donc écrit un programme C simple qui le fait:L'utilisation est comme ceci:
la source