web-dev-qa-db-fra.com

Comment faire des alias pour les chemins de fichiers?

J'ai beaucoup de dossiers sur ma machine, beaucoup d'entre eux contiennent plus de dossiers, plus de dossiers dans ces dossiers, et ainsi de suite ... Maintenant, lorsque je fais certaines opérations cd et cp faire tous les jours dans le cadre d’un processus de sauvegarde ou de quelque chose qui devient ennuyeux de devoir taper tout le chemin du fichier vers un fichier ou un emplacement, même avec le TAB fonctionnalité de correction automatique.

Je pense donc que ce serait vraiment utile si je pouvais créer un alias, comme pour une commande, mais plutôt pour un chemin de fichier. Est-ce possible?

Voici quelques exemples de la manière dont j'aimerais que cela fonctionne:

  • J'aimerais pouvoir affecter ~/Documents/SectionA/Sub-folder65/SectionF-2 à un alias tel que pandaPictures afin que je puisse l'utiliser pour effectuer les opérations suivantes:

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

    Et ce serait aussi bien si TAB l'auto-complétion fonctionnerait avec les chemins de fichiers quand ils incluraient également ces alias de chemin de fichiers.

  • J'aimerais également pouvoir attribuer PandaImages/2016/Sector7 à un alias tel que safePandaImages afin de pouvoir l'utiliser pour effectuer les opérations suivantes:

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

Dans les exemples que je viens de donner, la deuxième section n’est pas un impératif absolu (où le pseudonyme n’est pas simplement au début, mais aussi au milieu et à la fin) s’il n’est pas possible ou très impraticable de le faire. Bien que, si cela est possible, cela ne me dérange pas que cela ne ressemble pas vraiment à ce qui précède (par exemple, si vous devez avoir []s autour de l'alias ou quelque chose comme ça, il est clair qu'il ne s'agit pas simplement d'un chemin de fichier normal. ).

J'utilise Ubuntu GNOME 15.10 avec GNOME 3.18.

1
user364819

Franchement, c'est un travail pour les variables:

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

Ou:

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

Bash n'est pas assez intelligent pour compléter le contenu des variables, mais zsh peut:

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

Avec bash, vous pouvez d’abord le faire développer chaque variable, alias, substitution de commande, etc., en utilisant CtrlAltE puis utilisez l'onglet de complétion:

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

Cela dit, si vous le faites régulièrement, scriptez-le. Faites un script. Ajoutez-le à crontab. Oublie.

6
muru

Les variables sont probablement la meilleure solution, mais vous pouvez également créer des liens symboliques qui feraient la même chose, du moins dans le premier cas. L'avantage est l'auto-complétion facile.

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

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