Wie erstelle ich unter Mac OSX einen symbolischen Link?

7

Ich habe eine .sh-Datei, die ich zum Erstellen eines symbolischen Links benötige. Ich möchte über das Terminal auf die Datei zugreifen können.

Der Befehl, den ich benutze, ist:

ln -s /path/roo.sh /usr/bin/roo

Aber wenn ich tippe roo, heißt es, dass der Befehl nicht gefunden wurde. Wenn ich tippe /path/roo.sh, funktioniert es. Vermisse ich irgendwo einen Schritt?

okysabeni
quelle
Können Sie überprüfen, ob dies /usr/bin/roovorhanden ist?
Poplitea

Antworten:

8

Was du getan hast, sollte funktionieren. Fehlerbehebung:

  1. Bist du unter der Wurzel? War der lnBefehl tatsächlich erfolgreich? Überprüfen Sie, mit ls -l /usr/bin/roowelcher der neu erstellte Link aufgelistet werden soll. Wenn der Link nicht vorhanden ist, fügen Sie vorher "sudo" hinzu ln, um ihn als root auszuführen (sudo fordert zur Eingabe des root-Passworts auf):

    sudo ln -s /path/roo.sh / usr / bin / roo

  2. Manchmal merkt sich bash, wo sich eine bestimmte ausführbare Datei befindet, und sucht nicht an anderen Orten. Geben Sie ein hash -r, um es zu vergessen, und versuchen Sie es rooerneut.

  3. "/ usr / bin" sollte definitiv in Ihrem PFAD sein, aber es tut nicht weh zu überprüfen: echo $PATHsollte "/ usr / bin" enthalten

haimg
quelle
2
Was ich falsch gemacht habe war, dass ich das aktuelle Verzeichnis als Pfad ./folder1/folder2/roo.sh verwende und wenn ich ls -l / usr / bin / roo eingebe, wird dieser Fehler angezeigt. Danke für diesen guten Tipp haimg :)
okysabeni
2

Verwenden Sie den Befehl alias roo="/usr/bin/roo"

TheTechPro07
quelle
1

Wenn Sie versuchen, roo als Befehl zu verwenden, sollten Sie sich den Alias-Befehl ansehen.

In diesem Fall würden Sie tun:

alias roo="path to roo"

Um es zu nennen, müssen Sie nur tun roo

Zum Beispiel

alias test="ruby /Users/user/Desktop/test.rb"
Kassym Dorsel
quelle
0

Ich denke, der Symlink wurde nicht erstellt, da Sie dies nur mit sudo vom Terminal aus tun können. Bitte überprüfen Sie, ob / usr / bin / roo vorhanden ist.

Wenn vorhanden, versuchen Sie es bitte mit dem echo ${PATH}Befehl. Er zeigt Ihnen die Ordner, in denen Sie die Shell-Suche befehlen. Wenn es nicht / usr / bin enthält, versuchen Sie es durch Hinzufügen export PATH="${PATH}:/usr/bin"zu Ihrem ~ / .profile zu beheben

Gabor Garami
quelle
0

Mein hat echo $PATHmir gezeigt, dass / usr / local / bin / auch in meinem Pfad ist, also habe ich nur / usr / local / bin / roo als mein Linkziel verwendet.

ln -s /path/roo.sh /usr/local/bin/roo
DaShaun
quelle