Angenommen, ich wechsle zu /usr/local/bin
, möchte aber mein Passwort in ändern. Wie kann ich das mit zsh machen? Ich weiß, dass ich Dinge wie und dann /usr/bin
machen kann, um mein Passwort in zu ändern , aber ich komme nicht ganz dahinter, wie ich das mache, was ich möchte.cd /a/b/
cd b c
/a/b
Antwort1
Angesichts der flexiblen Funktionalität von zsh cd
gibt es mindestens drei Möglichkeiten, das Gewünschte zu erreichen. Sie können entweder cd /usr/local /usr
oder cd local /
oder schreiben cd local/bin bin
. Man kann sich wahrscheinlich noch weitere Lösungen ausdenken.
cd
Die Syntax von in zsh ist cd OLD NEW
. Dieser Befehl gleicht Ihr $PWD
mit ab OLD
und ersetzt alle übereinstimmenden Teile durch NEW
. Sie sollten bedenken, dass cd
relativ zu Ihrem aktuellen Verzeichnis funktioniert. Wenn Sie also cd /usr/local usr
in schreiben /usr/local/bin
, gibt zsh einen Fehler aus, weil es kein solches Verzeichnis wie gibt /usr/local/bin/usr/bin
. Achten Sie immer auf die Schrägstriche.
Antwort2
Du kannst den ... benutzenZwei-Argument-Form voncd
um eine Teilzeichenfolge des aktuellen Arbeitsverzeichnisses zu ersetzen. Um beispielsweise zu entfernen /local
, können Sie verwenden
cd /local ''
Da mehrere Schrägstriche keinen Unterschied machen, kann man dies auch so schreiben: cd /local /
(ergibt /usr//bin
, dann wird der doppelte Schrägstrich zu einem einzelnen vereinfacht) oder cd local /
(ergibt auch /usr//bin
).
Ein anderer Ansatz ist die Verwendung der Befehlszeilenbearbeitung. Mit den Standardeinstellungen geben Sie cd $PWD
in der Befehlszeile ein und drücken dann Tab: Die Variablensubstitution wird durch den Wert der Variablen ersetzt und Sie können ihn nach Belieben bearbeiten. Unter setopt auto_cd
müssen Sie nicht cd
zuerst schreiben. Wenn Ihre Konfiguration dazu führt, Tabdass die Variable nicht erweitert wird, verwenden Sie die Taste, die die zle-Funktion aufruft, expand-or-complete
anstatt complete-word
.