Mit Alias meine ich die Ordnerverknüpfung, die erstellt wird, wenn Sie mit der rechten Maustaste auf einen Ordner im Finder klicken und "Alias erstellen" auswählen. Ich kann symbolische Links in Terminal mit durchlaufen cd
, aber es funktioniert nicht bei Aliasen : bash: cd: example-alias: Not a directory
. Ist es möglich, das Verzeichnis in Terminal auf das Ziel eines Alias zu ändern?
9
Antworten:
Um das CD'ing in einen Ordner-Alias zu aktivieren, habe ich unter Mac OS X Hinweise Folgendes gefunden .
Kompilieren Sie den folgenden Quellcode mit dem folgenden Befehl:
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 oder / usr / local / bin kopieren, damit Sie leicht darauf zugreifen können.
C-Quellcode für getTrueName (kopieren Sie den Text und speichern Sie die Datei als getTrueName.c in Ihrem Home-Verzeichnis):
Fügen Sie Folgendes in ~ / .bash_profile ein oder erstellen Sie eine neue Datei ~ / .bash_profile mit folgendem Inhalt:
Sie müssen Terminal wahrscheinlich neu starten, um Ihr geändertes .bash_profile zu laden.
Getestet in Yosemite 10.10.2 & gcc 4.2 (Xcode 6.2) und es funktioniert.
Ein ähnlicher Ansatz ist unter superuser.com verfügbar
quelle
Ich habe die Antwort von @klanomath nicht getestet, aber es gab früher eine Python-Bibliothek, um das Ziel eines Alias zu ermitteln, aber die Carbon-Unterstützung wurde aus den Apple-Frameworks entfernt. Dies kann in Ziel C unter https://stackoverflow.com/a/21151368/838253 erfolgen .
Am besten verwenden Sie Symlinks, aber mit Finder können Sie diese leider nicht erstellen.
Ich habe einen OS X-Dienst geschrieben, der Symlinks erstellt (die sowohl vom Finder als auch vom Terminal unterstützt werden). Dadurch wird das folgende Bash-Skript in einem Finder-Workflow ausgeführt. (Leider scheint es nicht möglich zu sein, Automator-Code in einem lesbaren Format zu veröffentlichen.)
quelle
curFolder
undlinkFile
werden nicht verwendet. Warum sind sie dort? Es sollte Räume rund um den Vergleichsoperator zB sein$fileExists == ""
und prüfen , mit$(..)
anstelle von Legacy - Backticks.Hier ist meine Meinung dazu.
Fügen Sie diese Funktion hinzu und laden Sie sie in Ihr .profile.
Aktualisieren.
Ich habe die
builtin cd
in der Antwort @klanomath gezeigte Zeile verwendet, mit der Sie den Befehl cd überschreiben können. So können wir jetzt verwenden:cd /path/to/example-alias
oder
cd /path/to/example
Die Funktion sollte zurückkehren und zum ursprünglichen Pfad der ursprünglichen Aliase oder zum normalen Pfad zurückkehren.
quelle
Ein symbolischer Link (UNIX-Alias) sieht zwar genauso aus wie ein Finder-Alias in Finder, es handelt sich jedoch um zwei völlig unterschiedliche Arten von Aliasen.
Eine symbolische Verknüpfung enthält nur den Pfad, zu dem sie führt, und wird dauerhaft oder vorübergehend unterbrochen, wenn die Ressource verschoben wird oder sich auf einem nicht verbundenen Laufwerk bzw. einer nicht freigegebenen Freigabe befindet.
Ein Finder-Alias ist technisch gesehen eine normale Datei mit Anweisungen für den Finder. Der Finder kann diese Informationen verwenden, um eine verschobene Zieldatei / ein verschobenes Zielverzeichnis bis zu einem gewissen Grad zu finden. Wenn sich eine Zielressource eines Alias auf einem bereitgestellten Netzwerkfreigabepunkt befindet, enthält sie auch Informationen darüber, mit welchem Schlüsselbundelement Sie am Freigabepunkt angemeldet werden können, um ihn zu öffnen.
Wenn Sie also kein Skript oder Programm zum Auslesen der Finder-Aliasdatei schreiben, wird diese nicht als Verzeichnis, sondern als Datei in Terminal verwendet.
Alternativ können Sie den aktuellen Finder-Alias entfernen und an seiner Stelle einen symbolischen Link erstellen. Der Befehl wäre
ln -s /path/to/original
, einen symbolischen Link im aktuellen Verzeichnis zu erstellen. Der Pfad kann ein vollständiger oder relativer Pfad sein.quelle
osascript[9807:7154723] CFURLGetFSRef was passed an URL which has no scheme (the URL will not work with other CFURL routines)
Mithilfe dieses Tipps habe ich das Applescript von @ markunte geändert, um die obige Warnmeldung zu entfernen
quelle
Wie die meisten Betriebssysteme (außer Windows) unterstützt OS X Bash-Skripte. Erstellen Sie zuerst die Datei auf Ihrem Desktop (oder an einem beliebigen Ort):
Berühren Sie ~ / Desktop / PlexConnect.sh. Legen Sie als Nächstes die Berechtigungen der Datei so fest, dass sie ausführbar ist:
chmod + x ~ / Desktop / PlexConnect.sh Sie können den Inhalt des Skripts dann mit einem Texteditor Ihrer Wahl bearbeiten. Stellen Sie lediglich sicher, dass er mit der folgenden Zeile beginnt, damit das System ihn mithilfe der Shell (Bash) ausführen kann:
! / bin / bash
Die Datei kann dann doppelklicken, Terminal starten und ausführen.
Eine elegantere Lösung hierfür könnte jedoch darin bestehen, eine AppleScript-Anwendung zu erstellen, die den Befehl für Sie ausführt. Öffnen Sie die Anwendung "Skript-Editor" und fügen Sie Folgendes ein:
Führen Sie das Shell-Skript "/Applications/PlexConnect-master/PlexConnect.py" mit Administratorrechten aus. Speichern Sie dieses als "Anwendung" und benennen Sie es nach Ihren Wünschen. Beim Öffnen erhalten Sie die Standardkennwortabfrage von OS X, führen das Skript aus und schließen sich selbst.
quelle