Puis-je ajouter un raccourci pour remplacer un chemin sous Linux?


33

Par exemple, je vais toujours sur ce chemin:

/ utilisateur / quelque chose / certains dossiers / quelque part

mais je ne veux pas taper

cd / utilisateur / quelque chose / certains dossiers / quelque part

dans le terminal tout le temps, puis-je avoir une petite main pour le faire? par exemple, puis-je faire quelque chose comme

cd commandPlace

remplacer le chemin?

Réponses:


32

Vous pouvez utiliser la variable d'environnement CDPATHpour cela. Depuis la page de manuel de Bash:

CDPATH

Chemin de recherche de la commande cd. Il s'agit d'une liste de répertoires séparés par deux points dans laquelle le shell recherche les répertoires de destination spécifiés par la commande cd. Un exemple de valeur est ".: ~: / Usr".

Dans votre cas, vous pouvez définir

export CDPATH=.:/user/something/somefolders

dans ~/.bashrc, puis taper vous cd somewhereamènerait à /user/something/somefolders/somewhere(en supposant qu'il n'y a pas de répertoire nommé somewheredans le répertoire actuel).

Alternativement, si vous ne voulez pas faire référence au dossier somewherepar son vrai nom, vous pouvez créer un répertoire caché qui contient un lien symbolique /user/something/somefolders/somewhereavec le nom que vous souhaitez utiliser. Il peut également contenir des liens vers d'autres répertoires que vous visitez fréquemment. Ensuite, définissez CDPATHpour inclure le chemin d'accès à ce répertoire caché. Notez bien qu'avec cette méthode, si vous cd somewhereet puis cd .., vous vous retrouverez dans le répertoire caché. Cela peut ou non être un problème pour vous.


41

Deux raccourcis que j'utilise tout le temps pour des choses comme ça:

Alias

alias somedir = 'cd / home / john / www / quelque chose /'

Ensuite, vous pouvez taper somedirpour accéder à ce répertoire. Ajoutez-les à votre .bashrc.

Liens symboliques

ln -s / long / chemin / vers / certains / autres / dossier / raccourci

Cela fera un fichier /shortcutauquel des liens vers /long/path/to/some/other/folder. Ensuite, vous pouvez taper cd à la /shortcutplace. La mise en garde est qu'il remplit votre répertoire racine (ou quel que soit le répertoire dans lequel vous mettez les liens) assez rapidement. Je préfère les alias.


gentil John!
Gob00st

c'est censé être ln -s /long/path/to/some/other/folder /shortcutquand je l'ai fait dans l'autre sens, il a créé le raccourci à l'endroit où je voulais créer le lien. J'ai soumis une modification pour la mettre à jour.
Elias

1
Que diriez-vous d'un répertoire à la racine avec un nom court, par exemple /slet y créer des raccourcis? (c.-à ln -s /long/path/to/some/other/folder /sl/shortcut- d . Aucun encombrement à la racine, plus un rappel visuel que le chemin de votre invite est un lien symbolique.
RolfBly

14

J'ai tendance à utiliser la recherche interactive bash tout le temps. L'essayer Appelez-le avec ctrl + r et commencez à taper une partie de votre chemin, comme quelque part . Votre commande cd apparaîtra probablement. :)


9

Regardez la commande "alias".

Dans csh:

alias commandplace "cd /user/something/somefolders/somewhere"

En sh:

alias commandplace="cd /user/something/somefolders/somewhere"

Mais j'aime la solution symlink:

ln -s /user/something/somefolders/somewhere ~/commandplace 

Remarque: ln prend les arguments dans le même ordre que cp.


9

Une autre chose que vous pouvez faire est de stocker le chemin en question dans une variable d'environnement. Ajoutez ces lignes à votre ~/.profilefichier:

somedir=/user/something/somefolders/somewhere
export somedir

Vous pouvez ensuite accéder au répertoire avec

cd "$somedir"

1
C'est de loin la meilleure solution imo car vous pouvez utiliser la variable pour n'importe quelle commande. Si vous affectez un alias, cet alias est toujours lié à une commande comme cd ...
BdN3504

C'est la solution que j'espérais exister et que je cherchais. Pour les raisons indiquées par le BdN3504.
inspirednz

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.