Gibt es eine Möglichkeit, direkt von einem anderen Verzeichnis zu einem beliebigen Verzeichnis zu wechseln?

14

Gibt es eine Möglichkeit, direkt von einem anderen Verzeichnis zu einem beliebigen Verzeichnis zu wechseln? Nehmen wir zum Beispiel an, ich befinde mich im Stammverzeichnis und wollte direkt zu currentProject wechseln, ohne Folgendes zu tun :

cd dropbox/dev/currentProject



-root
  -dropbox
     -dev
        -currentProject

Gibt es einen Weg, dies zu tun?

Lampenschirm
quelle

Antworten:

21

Sie können so etwas wie Autojump verwenden . Mit Autojump können Sie mit dem jBefehl schnell zu häufig besuchten Verzeichnissen springen .

Wenn Sie zum Beispiel ein paarmal cdin Ihr currentProjectVerzeichnis gegangen sind, können Sie folgendermaßen dorthin springen:

j currentProject

Sie können sogar nur einen Teil des Verzeichnisnamens verwenden. Sie könnten also Folgendes tun:

j current

Um cdhineinzukommen currentProject.

Wuffers
quelle
8

Sie können Ihrem $ CDPATH auch einige allgemeine Verzeichnisse hinzufügen

export CDPATH=$HOME

Auf diese Weise können Sie beispielsweise cdvon überall in Ihrem System in ein beliebiges Verzeichnis in Ihrem Basisordner gelangen.

Mehr

Yab
quelle
7

Dies beantwortet Ihre Frage nicht direkt, aber wenn ich richtig davon ausgehe, dass Sie häufig zwischen Verzeichnissen wechseln, können Sie einen Terminal-Multiplexer wie GNU Screen verwenden , um die verschiedenen Verzeichnisse in verschiedenen Fenstern geöffnet zu halten, und zwar einfach Wechseln Sie zwischen ihnen nach Bedarf. Ich persönlich benutze Byobu , das einige Funktionen am oberen Bildschirmrand hinzufügt.

Abe Voelker
quelle
1
Siehe auch: tmux .
Annika Backstrom
5

Sie können einen Alias ​​in Ihrem Bash-Profil festlegen. Grundsätzlich können Sie so einen Befehl mit einem Wort abkürzen. Sie können currentProject auf / dropbox / dev / currentProject setzen

n0pe
quelle
4

Sie können Symlinks in Ihrem Home-Verzeichnis erstellen, zu denen Sie wechseln möchten.

ln -s /dropbox/dev/currentProject ~/currentProject

Auf diese Weise verwenden Sie immer noch CD, müssen sich aber nicht den vollständigen Pfad merken. Benutz einfach:

cd ~/currentProject

Wenn Sie den Link nicht mehr verwenden, löschen Sie ihn einfach.

rm ~/currentProject
Chris Ting
quelle
0

Wie Wuffers oben erwähnt hat , kann Autojump das für Sie erledigen. Es speichert eine Datenbank mit zuvor besuchten Verzeichnissen und ermöglicht es Ihnen, mit einem Befehl j <a few letters in the directory path>in dieses Verzeichnis zu wechseln. Es gibt einen zusätzlichen Befehl für den automatischen Sprung jc, der Ihren Anforderungen entsprechen sollte. jcHiermit können Sie zu einem zuvor besuchten Unterverzeichnis des aktuellen Arbeitsverzeichnisses springen. Sie müssen das Verzeichnis also nur einmal besuchen, damit dies funktioniert, bis Sie die AutoJump-Datenbank löschen. Sie können es auch direkt mit hinzufügen autojump --add DIR(möglicherweise wird die Add-Liste bei Bedarf aus einer Verzeichnisbaumliste erstellt).

Schnappschuss
quelle
0

In bash und * csh gibt es die eingebauten Befehle 'pushd' und 'popd', mit denen Sie Verzeichnisse auf einen Last-In-First-Out-Stack (mit pushd [directory]) verschieben und dann mit 'popd' schnell zum obersten Verzeichnis im Stack wechseln können. Abhängig davon, wie Sie den Stack geladen haben, können Sie möglicherweise schnell zwischen den Verzeichnissen navigieren, damit dies für Sie funktionsfähig ist.

Nevin Williams
quelle