Geben Sie einen kurzen Namen für häufig geöffnetes Verzeichnis über Terminal [Duplizieren]

8

Jedes Mal, wenn ich in ein Verzeichnis wechseln möchte, das ich sehr oft verwende, muss ich diesen langen Verzeichnispfad eingeben:

cd /media/prasanth/01D0F888E7BC91801/github projects

oder ich muss die GUI verwenden, um in den Ordner zu gelangen und das Terminal zu öffnen.

Ist es möglich, diesen langen Pfad einem einzelnen Namen zuzuordnen und ihn über das Terminal einzugeben wie

cd mygitfiles

?

    
Prasanth P 04.01.2016, 15:53

7 Antworten

17

Bis jetzt sind zwei große in anderen Antworten gegeben worden, ich habe noch eine Möglichkeit:

ln -s /media/prasanth/01D0F888E7BC91801/github/projects ~/mygitfiles

Erstellt einen symbolischen Link zum langen Pfad in Ihrem Heim.

Symlinks sind wie Verknüpfungen, die auf eine andere Datei oder ein anderes Verzeichnis zeigen, und die meisten Programme behandeln sie als normal. Sie können% sym_link rm ohne den Pfad zu beeinflussen, auf den er zeigt. Sie können beobachten, wo der Symlink mit ls -l zeigt.

Sie können den Symlink verwenden, als ob es ein echtes Verzeichnis wäre und cd ~/mygitfiles .

Beachten Sie, dass ~ einfach ein Alias ​​für Ihr Home-Verzeichnis ist, der für einen solchen Symlink möglicherweise sinnvoll ist.

Beachten Sie, dass die Verwendung dieses Symlinks letztendlich Ihr aktuelles Arbeitsverzeichnis beeinflusst.

Im allgemeinen Fall würde ich Nicolas Delvaux oder Eduardo Colas Antwort vorschlagen, aber die Verwendung eines Symlinks könnte genauso - oder möglicherweise nützlicher sein.

    
Paul Grove 04.01.2016 19:26
9

Sie können Ihren Pfad in einer Umgebungsvariablen speichern. Lauf:

nano $HOME/.bashrc

Gehen Sie zum Ende der Datei, erstellen Sie eine neue Zeile und schreiben Sie:

export mgf="/media/prasanth/01D0F888E7BC91801/github projects"

Drücken Sie Strg + O und ENTER , um die Datei zu speichern. Drücken Sie Strg + X , um zu beenden. Melden Sie sich nun ab und melden Sie sich an. Wenn Sie ein Terminal öffnen (running bash), können Sie cd "$mgf" ausführen, um zu Ihrem Verzeichnis zu wechseln.

    
Eduardo Cola 04.01.2016 16:08
8

Sie sollten Aliase verwenden. Siehe help alias .

Kurz gesagt, Sie können einen Alias ​​definieren, indem Sie Folgendes eingeben:

alias whatever="cd /media/prasanth/01D0F888E7BC91801/github/projects"

Wenn Sie whatever eingeben, werden Sie in den definierten Ordner verschoben.

Sie können den Alias-Befehl in Ihre ~ / .bashrc einfügen, um ihn dauerhaft zu behalten.

    
Nicolas Delvaux 04.01.2016 16:01
8

Es scheint, als ob Sie nach cdargs suchen.

Es bietet Lesezeichen für den Befehl cd .

Sie können ein Lesezeichen hinzufügen, indem Sie mark NAME in dem mit einem Lesezeichen versehenen Verzeichnis ausführen. Dann können Sie von überall aus mit cv NAME in dieses Verzeichnis wechseln, wobei NAME der Name des Lesezeichens ist.

    
rbialon 04.01.2016 20:17
4

Sie können sich autojump ansehen. Es lernt im Grunde, wie Sie cd verwenden, indem Sie eine Datenbank mit den von Ihnen besuchten Ordnern erstellen und ihnen Gewichtung zuweisen: Je mehr Sie einen Ordner besuchen, desto höher ist er in der Datenbank.

Dann, nachdem du cd ein paar Mal in ein Verzeichnis (auch einmal reicht):

cd /media/prasanth/01D0F888E7BC91801/github projects

Sie können mit dem Befehl j dorthin springen:

j proj

Sie können einen beliebigen Teil des Verzeichnisnamens als Argument für den Befehl j verwenden, und es springt zum ersten übereinstimmenden Eintrag. Dies ist hilfreich, wenn Sie sich nicht an den vollständigen Pfad erinnern können.

Es hat einige andere Fähigkeiten, die ziemlich ordentlich sind, wie springt zu Kind ( jc ). Ich ermutige Sie, es zu überprüfen.

    
Ciprian Tomoiagă 05.01.2016 00:36
3

Bash hat ein kleines Handfeature namens CDPATH . Wenn cd foo nach einem relativen Pfad sucht, wird standardmäßig im aktuellen Verzeichnis gesucht. Wenn Sie CDPATH auf eine durch Doppelpunkte getrennte Liste von Pfadpräfixen festlegen, können wir stattdessen zu diesem Ziel wechseln, wenn keine Übereinstimmung gefunden wurde. Dies funktioniert ähnlich wie die Variable PATH , wenn nach ausführbaren Dateien gesucht wird.

In Ihrem Fall könnten Sie export CDPATH=.:/media/prasanth/01D0F888E7BC91801/github/ in Ihrem ~/.bashrc und dann cd projects/foo von überall ausführen, um zu /media/prasanth/01D0F888E7BC91801/github/projects/foo zu gelangen.

Dies funktioniert jedoch nicht, wenn Ihr aktuelles Verzeichnis einen übereinstimmenden Eintrag enthält. Dies kann zu einigen verwirrenden Fehlermodi führen. Es gibt einige Leute, die auf diese Methode schwören, ich selbst bevorzuge eher Symlinks im Home-Verzeichnis wie von Paul Grove vorgeschlagen.

    
amon 04.01.2016 20:59
1

Ich würde

eingeben
cd /media/prasanth/01D0F888E7BC91801/github projects #demo-proj

das erste Mal, dass ich diesen Befehl ausführe. Der Inhalt nach # ist ein Kommentar.

Dann, um es aufzurufen, würde ich Strg R und geben Sie de (eine bequeme Teilzeichenfolge von demo-proj ), bis der vorherige Befehl kommt.

(reverse-i-search)'de': cd /media/prasanth/01D0F888E7BC91801/github projects #demo-proj

Ich kann Ctrl R erneut für noch frühere Verwendungen verwenden.

Dies muss keine permanenten Aliase setzen / ersetzen. Ich mache das auch für lange Befehle oder sogar netstat -tulpn , was ich kryptisch finde.

    
aitchnyu 05.01.2016 08:53

Tags und Links