Mac Terminal 'cd' zu einem Ordner-Alias

9

Ich habe einen Alias ​​eines Ordners namens 'htdocs alias' erstellt und wenn ich die Terminal-CD 'htdocs alias' oder cd htdocs \ alias eingebe, funktioniert das nicht?

Gibt es Gründe, warum dies geschieht? oder irgendwelche Vorschläge, um dies zu helfen?

RSM
quelle

Antworten:

13

Mac OS-Aliase ähneln eher Windows-Verknüpfungen als Unix-Symlinks. Sie können auf sie doppelklicken, aber Sie können nicht cdin sie hinein.

In diesem Artikel wird erläutert, wie Sie cdfolgende OS X-Aliase erstellen:

Dies ist ein zweiteiliger Prozess, der ein wenig Vertrautheit mit gcc und bash erfordert, aber ich werde versuchen, ihn so einfach wie möglich zu gestalten. Zunächst benötigen Sie diese Datei: getTrueName.c . Diese Datei wurde von Thos Davis erstellt und ist unter der GPLv2 lizenziert. Speichern Sie es an einem beliebigen Ort und kompilieren Sie es dann mit dem folgenden Befehl:

gcc -o getTrueName -framework Carbon getTrueName.c

Dadurch wird die ausführbare Datei 'getTrueName' im selben Verzeichnis wie die Quelle erstellt. Sie können es Ihrem PATH hinzufügen oder einfach direkt nach / usr / bin kopieren, damit Sie leicht darauf zugreifen können.

Interessanterweise wird .bashrc beim Öffnen einer neuen Shell nicht wie erwartet ausgeführt. Stattdessen wird unter der Login-Shell .bash_profile ausgeführt. Fügen Sie also Folgendes zu .bash_profile in Ihrem Home-Verzeichnis hinzu. Möglicherweise müssen Sie es zuerst erstellen. Es ist standardmäßig nicht vorhanden.

cd() {
  if [[ -f "$1" || -L "$1" ]]; then
    path=$(getTrueName "$1")
    builtin cd "$path"
  else
    builtin cd "$@"
  fi
}

[die Funktion ein wenig bearbeitet - Schwerkraft]

user1686
quelle
Alternativ ist es recht einfach, einen OS X-Dienst zu erstellen, der Symlinks erstellt und Cmd-Lstattdessen die Tastenkombination zugewiesen werden kann .
Daniel Beck
Der verlinkte Artikel existiert nicht mehr.
Chris Seite
Behoben, @ChrisPage.
user1686
Bist du sicher, dass es ==funktioniert? Sollte es nicht sein -eq? ${#1}sieht auch nicht richtig aus, $#sollte ausreichen ...
Daniel Beck
@ DanielBeck: Ich habe gerade den gesamten Artikel zitiert und mich nicht wirklich mit der Wrapper-Funktion befasst.
user1686