Frage Wie mache ich Aliase für Dateipfade?


Ich habe viele Ordner auf meinem Computer, viele dieser Ordner haben mehr Ordner in ihnen, mehr Ordner in diesen Ordnern und so weiter ... Jetzt, wenn ich sicher bin cd und cp Operationen, die ich jeden Tag als Teil eines Backup - Prozesses mache oder etwas, wird es eher lästig, den gesamten Dateipfad in eine Datei oder einen Speicherort eingeben zu müssen, sogar mit dem TAB Auto-Korrekt-Funktion.

Also, was ich wirklich nützlich finde, ist, wenn ich einen Alias ​​erstellen könnte, wie für einen Befehl, sondern stattdessen für einen Dateipfad. Ist das möglich?

Hier einige Beispiele, wie ich es gerne hätte:

  • Ich würde gerne zuordnen können ~/Documents/SectionA/Sub-folder65/SectionF-2 einem Alias ​​wie z pandaPictures damit ich die folgenden Dinge tun kann:

    cp pandaPictures/pic1.png ~/Pictures
    cd pandaPictures
    cd pandaPicture/Specials
    

    Und es wäre auch schön wenn TAB Die automatische Vervollständigung funktioniert mit den Dateipfaden, wenn sie auch diese Aliase für den Dateipfad enthalten.

  • Ich würde auch gerne zuordnen können PandaImages/2016/Sector7 zu einem Alias ​​wie safePandaImages damit ich die folgenden Dinge tun kann:

    cp ~/Documents/Images/safePandaImages/panda.jpg ~/Pictures
    cd ~/Pictures/Photos/Images/Wallpaper/safePandaImages
    

In den obigen Beispielen ist der zweite Abschnitt kein absolutes Muss (wobei der Alias ​​nicht nur am Anfang, sondern auch in der Mitte und am Ende steht), wenn es nicht möglich oder sehr unpraktisch ist. Aber wenn es möglich ist, stört es mich nicht, dass es nicht so aussieht wie oben (zum Beispiel wenn du es haben musst []s um den Alias ​​oder etwas, so dass es klar ist, dass es nicht nur ein normaler Dateipfad ist).

Ich benutze Ubuntu GNOME 15.10 mit GNOME 3.18.


1
2018-03-28 20:26


Ursprung


Für die erste würde sogar eine einfache symbolische Verbindung ausreichen: ln -s ~/Documents/SectionA/Sub-folder65/SectionF-2 ~/pandaPictures. - kos


Antworten:


Ehrlich gesagt, das ist ein Job für Variablen:

pandaPictures=~/Documents/SectionA/Sub-folder65/SectionF-2
cp "$pandaPictures"/pic1.png ~/Pictures
cd "$pandaPictures"
cd "$pandaPictures"/Specials

Oder:

safePandaImages=PandaImages/2016/Sector7
cp ~/Documents/Images/"$safePandaImages"/panda.jpg ~/Pictures
cd ~/Pictures/Photos/Images/Wallpaper/"$safePandaImages"

Bash ist nicht intelligent genug, um den Inhalt von Variablen zu vervollständigen, aber zsh kann:

$ foo=/usr   
$ cp $foo/  # press Tab
bin/      include/  lib/      lib32/    lib64@    local/    sbin@     share/    src/

Mit bash können Sie zuerst jede Variable, Alias, Befehlssubstitution usw. mit Hilfe von erweitern StrgAltE und dann die Tabulatorvervollständigung verwenden:

$ foo=/usr
$ cp $foo # press Ctrl-Alt-E
$ cp /usr

All das sagte, wenn du das regelmäßig machst, Skript es. Mach ein Skript. Fügen Sie es zu crontab hinzu. Vergiss es.


5
2018-03-28 20:34



Setzen Sie die Variablendefinitionen in die bashrc und sie sind von jedem Terminal aus zugänglich. - wjandrea


Variablen sind wahrscheinlich die beste Lösung, aber Sie könnten auch Symlinks erstellen, die das gleiche erreichen würden, zumindest für den ersten Fall. Der Vorteil ist eine einfache Autovervollständigung.

ln -s ~/Documents/SectionA/Sub-folder65/SectionF-2 ~/pandaPictures

cp ~/pandaPictures/pic1.png ~/Pictures
cd ~/pandaPictures 
cd ~/pandaPictures/Specials

4
2018-03-28 20:49