Sie können den vollständigen Pfad zum Befehl angeben, wenn Sie ihn ausführen:
/usr/bin/execfile
oder
/usr/local/bin/execfile
um die genaue Datei an diesem Pfad auszuführen
Ich habe zwei separate Dateien auf meinem Computer.
which execfile /usr/local/bin/ /usr/bin/
Ich habe also zwei Dateien mit demselben Namen in zwei verschiedenen Verzeichnissen. Wie kann ich genau angeben, welcher Befehl ausgeführt werden soll?
Vielen Dank.
Sie können den vollständigen Pfad zum Befehl angeben, wenn Sie ihn ausführen:
/usr/bin/execfile
oder
/usr/local/bin/execfile
um die genaue Datei an diesem Pfad auszuführen
/usr/local/bin/execfile
oder
/usr/bin/execfile
Prüfen Sie auch, ob beide zu derselben Datei gehören - wie es ein Link sein könnte
ls -al /usr/bin ls -al /usr/local/bin
und prüfen, ob sie miteinander verbunden sind
Wenn sie verknüpft sind, können Sie keine Differenz ausführen, andernfalls müssen Sie den vollständigen Pfad angeben
Beim Versuch, einen Befehl foo auszuführen, wird foo in den durch die Umgebungsvariable PATH angegebenen Verzeichnissen in der gleichen Reihenfolge gesucht, in der sie angegeben sind. Wenn Sie dies vermeiden möchten, geben Sie den vollständigen Pfad zur ausführbaren Datei ein.
Geben Sie dies in ein Terminal ein:
echo $PATH
um den aktuellen Inhalt der PATH-Umgebungsvariablen anzuzeigen.
Wenn Sie beispielsweise immer die ersten ausführbaren Dateien in / bin ausführen möchten, stellen Sie sicher, dass / bin in $ PATH an erster Stelle steht. Sie können PATH in der .profile-Datei in Ihrem Home-Verzeichnis angeben. Für das Beispiel oben bearbeiten Sie die Datei und setzen diese Zeile am Ende:
export PATH = / bin: $ PATH
Dies funktioniert nur für Ihren Benutzer. Wenn Sie $ PATH systemweit angeben möchten (es funktioniert für alle Benutzer mit Ausnahme der Benutzer, die es in ihrem .profile ändern), fügen Sie dieselbe Zeile oben in der Datei / etc / profile hinzu (Sie benötigen Root-Rechte.) .)
Denken Sie auch daran, dass Profildateien nur anfangs analysiert werden. Das heißt, wenn Sie Ihre persönliche .profile-Datei bearbeiten, müssen Sie Ihre Shell dazu veranlassen, sie erneut zu analysieren. Sie können dies ausloggen und erneut anmelden oder auf andere Weise eingeben:
quelle ~ / .profile
Geben Sie für die systemweite Änderung ein
source / etc / profile
Dadurch wird Ihre aktuelle Shell-Sitzung die Profildatei erneut parsen. Wenn Sie möchten, dass Ihr komplettes Bootstrapped-System es erneut analysiert, sollten Sie Ihre Sitzung besser neu starten.
Denken Sie auch daran, dass sich dies ändern kann, wenn Sie eine andere Shell als bash verwenden.
In der bash-Manpage finden Sie einige interessante Informationen: http://linux.die.net/man/1/bash
Siehe Abschnitt "Befehlsausführung".
Schreiben Sie einen Alias in ~ / .profile:
alias execfile='/usr/local/bin/execfile'
Nach dem nächsten Login wird automatisch die richtige Version ausgewählt. Starten Sie die anderen mit dem vollständigen Pfad.
/usr/local/bin/execfile /usr/bin/execfile