Linux cd .. Befehl


9

Sagen Sie, wenn ich das oft tun muss:

cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/

Gibt es eine schnellere Möglichkeit, nicht immer ../../../../so oft zu tippen ? Irgendwelche kreativen Ideen?


2
warum nicht einfach ausführen cd ../../../..und damit fertig sein?
— Red Cricket

8
Sie können genießen pushdund popdoder sogar cd -.
— Jscott

1
Wenn Sie so weit zurückgehen, ist es möglicherweise sinnvoll, nur cd / actual / path / you / want zu verwenden, je nachdem, wie tief die Ordner sind.
— Drew Khoury

Dies ist viel mehr Aufwand als es wert ist. Wenn Sie zwischen Verzeichnissen wechseln, ist die vollständige Pfadangabe oder die Verwendung cd -( zum letzten Verzeichnis ) einfacher. Ich normalerweise, alias h="history|grep"damit ich stattdessen die Verknüpfungen für den Verlaufseintrag verwenden kann. So etwas wie h foo3, gefolgt von !450diesem Befehl zu wiederholen.
— ewwhite

Öffnen Sie ein anderes Terminalfenster und geben Sie cd ../../../ .. überhaupt nicht ein
— Matt

Antworten:


18

Die klassische Methode hierfür ist das Festlegen der CDPATHVariablen. In Ihrem Fall könnte es auf .:../../../../oder eingestellt werden .:/path/to/the/parent/of/foo, um den gewünschten Effekt zu erzielen. Sie können dann einfach tun cd foo/sub1/bar/destund dorthin gelangen, wo Sie möchten.

Dies hat den Vorteil, dass die Tab-Vervollständigung cdauch $CDPATHmagisch aussieht und funktioniert.


9

Sie können Autojump verwenden, das automatisch aus dem vorherigen CD-Befehl lernt, und Sie müssen beim nächsten Mal nur eine eindeutige Zeichenfolge aus dem vollständigen Pfad angeben. Ex. j foo, j foo1, j foo2


7

Sie können Verknüpfungen für diese Befehle erstellen, indem Sie der Bash-Konfigurationsdatei Aliase hinzufügen (~ / .bashrc oder /etc/bash.bashrc).

alias cdd="cd ../../../../"

Wenn Sie cdddann eingeben, wird dieser Befehl ausgeführt.


3
Ja, oder function cdd () { cd ../../../../$1/bar/dest ; }, so können Sie nur geben Sie zB cdd foo, cdd foo2.
— Andrew Schulman

0

Ich bin kürzlich auf https://github.com/rupa/z gestoßen , mit dem Sie per Regex zu einem kürzlich verwendeten Verzeichnis springen können. Sie könnten also so etwas tun wie:

z foo3.*dest

anstatt:

cd ../../../../foo3/sub1/bar/dest/

(Solange Sie dieses Verzeichnis bereits besucht haben und nichts neueres / häufig verwendetes mit diesem regulären Ausdruck übereinstimmt)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.