Vielleicht erscheint es Ihnen seltsam, aber ich möchte den Befehl in einem bestimmten Ordner ausführen, ohne den aktuellen Ordner in der Shell zu ändern. Beispiel - das mache ich normalerweise:
~$ cd .folder
~/.folder$ command --key
~/.folder$ cd ..
~$ another_command --key
Obwohl ich so etwas möchte:
~$ .folder command --key
~$ another_command --key
Ist es möglich?
bash
command-line
scripts
Timur Fayzrakhmanov
quelle
quelle
~/.folder/command --key
? Muss dascommand
Ihr aktuelles Verzeichnis sein~/.folder
?Antworten:
Wenn Sie die Sekunde vermeiden möchten,
cd
können Sie verwendenquelle
;
um&&
für eine gute Maßnahme. Wenn die CD ausfällt (z. B. weil Sie den Verzeichnisnamen eingegeben haben), möchten Sie den Befehl wahrscheinlich nicht ausführen.Ohne
cd
... nicht einmal. Ich habe zwei Wege gefunden:und zweitens:
quelle
Eine einfache Bash-Funktion zum Ausführen eines Befehls in einem bestimmten Verzeichnis:
Verwendung:
quelle
Ich musste dies auf bashfreie Weise tun und war überrascht, dass es kein Hilfsprogramm gibt ( das einem Befehl in einem geänderten Arbeitsverzeichnis ähnelt
env(1)
odersudo(1)
diesen ausführt. Deshalb habe ich ein einfaches C-Programm geschrieben, das dies tut:Die Verwendung ist wie folgt:
quelle