it-swarm.com.de

Wie kann ich in ein Alias-Verzeichnis im Mac OSX-Terminal wechseln?

Gibt es eine Möglichkeit, mit dem Befehl "cd" in ein Aliasverzeichnis von Shell zu gelangen? Es gibt immer zurück, dass "htdocs" kein Verzeichnis ist.

Edit: Ich habe die Verknüpfung mit der OS-GUI gemacht -> Rechtsklick auf das htdocs-Verzeichnis und wählte "Alias ​​..." (Ich verwende ein deutsches Betriebssystem, wenn es kein Alias ​​ist, vielleicht heißt es Abkürzung in Englisch?), Dann zog ich es in mein Home-Verzeichnis (weil mein Terminal von dort startet, wenn ich es öffne).

Alles was ich möchte ist, mein Terminal zu öffnen und "cd htdocs" einzugeben, damit ich von dort aus arbeiten kann.

53
codepushr

sie können symbolische Verknüpfung dazu machen.

ln -s SOURCE TARGET

z.B.

ln -s ~/Documents/books ~/Desktop/

Referenz

Über ein Alias ​​in ein Mac OS X-Terminal in ein Verzeichnis eintreten

53
Marvin W

Alles was ich möchte ist, mein Terminal zu öffnen und cd htdocs einzugeben, damit ich von dort aus arbeiten kann.

Der einfachere Ansatz besteht wahrscheinlich darin, die Verknüpfungen zu ignorieren und das übergeordnete Verzeichnis Ihres htdocs-Verzeichnisses der Umgebungsvariable CDPATH hinzuzufügen. bash(1) überprüft den Inhalt der Umgebungsvariable CDPATH, wenn Sie cd foo eingeben, um das Verzeichnis foo in einem der aufgelisteten Verzeichnisse zu suchen. Dies funktioniert unabhängig vom aktuellen Arbeitsverzeichnis und ist einfacher als das Setzen von symbolischen Links.

Wenn sich der Pfad zu Ihrer htdocs/srv/www/htdocs/ befindet, können Sie CDPATH=/srv/www verwenden. Dann würde cd foo zuerst nach /srv/www/foo/ suchen und zu ihm wechseln, falls er existiert; Wenn nicht, würde es im aktuellen Arbeitsverzeichnis nach foo suchen und in dieses Verzeichnis wechseln, falls vorhanden. (Dies kann verwirrend sein, wenn Sie über mehrere htdocs-Verzeichnisse in Ihrem System verfügen. In diesem Fall können Sie mit CDPATH=.:/srv/www problemlos in ein untergeordnetes Verzeichnis wechseln, aber die /srv/www/htdocs/-Version verwenden, wenn kein ./htdocs-Verzeichnis vorhanden ist.)

Sie können die CDPATH=/srv/www-Zeile zu Ihrer ~/.bashrc-Datei hinzufügen, damit sie bei jedem Start eines Terminals funktioniert.

10
sarnold

Ich persönlich benutze dies, um schnell in dem Verzeichnis zu arbeiten, das sich tief in einem meiner Volumes in meinem Mac befindet.

Öffnen Sie Ihren ~/.bash_profile und erstellen Sie einen Alias ​​für das Verzeichnis, indem Sie Folgendes hinzufügen:

alias cdh="cd /Volumes/Haiku/haiku/src/apps/superprefs"

Speichern Sie es, starten Sie Ihr Terminal neu. Wenn Sie nun cdh in Ihr Terminal eingeben, sollte das Arbeitsverzeichnis in das als Alias ​​angegebene Verzeichnis geändert werden.

8
Anirudh M

Ich bin nicht sicher, wie OSX Alias-Links verfügbar macht, aber da Sie bash verwenden, können Sie einfach eine Variable in Ihrer .bashrc-Datei erstellen.

In einer eigenen Zeile:

htdocs=YourDirectoryPath/

Nach dem Neustart von bash können Sie einfach cd $htdocs eingeben.

6
Gibron

Es gibt einen alten Hinweis auf macworld, dies in einer Weise zu tun, die in BASH integriert ist: Aktiviere 'cd' in Verzeichnis-Aliasnamen vom Terminal

Plus, hier ist eine Antwort, die diese Lösung für Superuser verwendet .

3
ThomasW

Sie können dazu möglicherweise Javascript verwenden - dieser Befehl scheint zu funktionieren:

cd "` osascript -e "beim Ausführen von aFile" -e "setze aFile in die POSIX-Datei aFile als Alias" -e ", um der Anwendung"\"" Finder "\" "den POSIX-Pfad von ((ursprüngliches Element von aFile) als zurückzugeben text) "-e" end run "path_to_my_Finder_alias 2>/dev/null`"

Grundsätzlich führt dieser Befehl ein AppleScript aus, das den Zielpfad des Arguments (path_to_my_Finder_alias) in einer Subshell ermittelt, es in Anführungszeichen einschließt und das Verzeichnis in dieses ändert.

Vielleicht kann jemand mit etwas mehr Bash-Erfahrung einen Bash-Alias ​​oder eine Funktion daraus machen.

1
Bryan

versuchen:

alias cdgo=`echo cd /root/go/`

cdgo wird ausgeführt, erhält dann den Befehl "cd/root/go /" und gibt den Befehl ein. Das Verzeichnis wird im aktuellen Terminalprozess geändert

Es funktioniert auf meinen Centos, kein Test mit OSX

0
David