GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie erstelle ich einen Alias ​​für einen langen Pfad?

Vielleicht ist es besser, Links zu verwenden

Softlink

Symbolischer oder weicher Link (Dateien oder Verzeichnisse, flexibler und selbstdokumentierend)

#      Source                            Link
ln -s /home/jake/doc/test/2000/something /home/jake/xxx

Fester Link

Fester Link (nur Dateien, weniger flexibel und nicht selbstdokumentierend)

#    Source                            Link
ln /home/jake/doc/test/2000/something /home/jake/xxx

So erstellen Sie einen Link zu einem Verzeichnis

Hinweis :Wenn Sie den Link in Ihrem Zuhause nicht sehen müssen, können Sie ihn mit einem Punkt beginnen.; dann wird es standardmäßig ausgeblendet, dann können Sie wie folgt darauf zugreifen

cd ~/.myHiddelLongDirLink

Es gibt eine Shell-Option cdable_vars :

cdable_vars
Wenn dies gesetzt ist, ein Argument für cd Ein eingebauter Befehl, der kein Verzeichnis ist, wird als Name einer Variablen angenommen, deren Wert das Verzeichnis ist, in das gewechselt werden soll.

Sie könnten dies zu Ihrem .bashrc hinzufügen :

shopt -s cdable_vars
export myFold=$HOME/Files/Scripts/Main

Beachten Sie, dass ich die Tilde durch $HOME ersetzt habe; Anführungszeichen verhindern die Tilde-Erweiterung und Bash würde sich beschweren, dass es kein Verzeichnis ~/Files/Scripts/Main gibt .

Jetzt können Sie dies wie folgt verwenden:

cd myFold

Kein $ erforderlich. Das ist eigentlich der springende Punkt – wie in anderen Antworten gezeigt, cd "$myFold" funktioniert ohne die Shell-Option. cd myFold funktioniert auch, wenn der Pfad myFold ist enthält Leerzeichen, keine Anführungszeichen erforderlich.

Dies funktioniert normalerweise sogar mit der automatischen Tab-Vervollständigung wie dem _cd Funktion in bash_completion prüft, ob cdable_vars ist gesetzt – aber nicht jede Implementierung macht es auf die gleiche Weise, also müssen Sie vielleicht bash_completion sourcen wieder in Ihrem .bashrc (oder bearbeiten Sie /etc/profile um die Shell-Option einzustellen).

Andere Shells haben ähnliche Optionen, zum Beispiel Zsh (cdablevars ).


Da es sich um eine Umgebungsvariable handelt (Alias ​​hat eine andere Definition in bash ), müssen Sie es mit etwas wie:

auswerten
cd "${myFold}"

oder:

cp "${myFold}/someFile" /somewhere/else

Aber ich finde es tatsächlich einfacher, wenn Sie einfach in dieses Verzeichnis wechseln möchten, eine echte zu erstellen Alias ​​(in einem der bash Startdateien wie .bashrc ), damit ich Tastenanschläge sparen kann:

alias myfold='cd ~/Files/Scripts/Main'

Dann können Sie einfach (ohne den cd ):

myfold

Um die Definition loszuwerden, verwenden Sie unalias . Das folgende Transkript zeigt alle davon in Aktion:

pax> cd ; pwd ; ls -ald footy
/home/pax
drwxr-xr-x 2 pax pax 4096 Jul 28 11:00 footy

pax> footydir=/home/pax/footy ; cd "$footydir" ; pwd
/home/pax/footy

pax> cd ; pwd
/home/pax

pax> alias footy='cd /home/pax/footy' ; footy ; pwd
/home/pax/footy

pax> unalias footy ; footy
bash: footy: command not found

Linux
  1. Wie man sudo dazu bringt, sich das Passwort länger zu merken

  2. Wie kann man `sudo` dazu bringen, $path beizubehalten?

  3. Wie erhalte ich die Bash-Vervollständigung für Befehlsaliase?

  4. So erstellen Sie ein VPN

  5. Wie man den Alias-Befehl in einem Bash-Skript oder einer Bashrc-Datei zum Laufen bringt

So erstellen Sie Aliasse zum Anpassen von Befehlen in Debian

Wie füge ich einen standardmäßigen Include-Pfad für GCC in Linux hinzu?

Wie macht man eine Datei spärlich?

So erstellen Sie einen Link zu einem Verzeichnis

Wie kann man git dazu bringen, beim Pull nicht nach dem Passwort zu fragen?

Wie installiere/erstelle ich eine benutzerdefinierte Eingabeaufforderung für die Fischschale?