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?
cd ../../../..
und damit fertig sein?pushd
undpopd
oder sogarcd -
.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 wieh foo3
, gefolgt von!450
diesem Befehl zu wiederholen.Antworten:
Die klassische Methode hierfür ist das Festlegen der
CDPATH
Variablen. 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 tuncd foo/sub1/bar/dest
und dorthin gelangen, wo Sie möchten.Dies hat den Vorteil, dass die Tab-Vervollständigung
cd
auch$CDPATH
magisch aussieht und funktioniert.quelle
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
quelle
Sie können Verknüpfungen für diese Befehle erstellen, indem Sie der Bash-Konfigurationsdatei Aliase hinzufügen (~ / .bashrc oder /etc/bash.bashrc).
Wenn Sie
cdd
dann eingeben, wird dieser Befehl ausgeführt.quelle
function cdd () { cd ../../../../$1/bar/dest ; }
, so können Sie nur geben Sie zBcdd foo
,cdd foo2
.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:
anstatt:
(Solange Sie dieses Verzeichnis bereits besucht haben und nichts neueres / häufig verwendetes mit diesem regulären Ausdruck übereinstimmt)
quelle