web-dev-qa-db-fra.com

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

Par exemple, je vais toujours sur ce chemin:

/ utilisateur/quelque chose/quelques 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 un raccourci pour le faire? par exemple, puis-je faire quelque chose comme

cd commandPlace

pour remplacer le chemin?

32
user28167

Vous pouvez utiliser la variable d'environnement CDPATH pour cela. De la page de manuel Bash:

CDPATH

Le chemin de recherche pour la commande cd. Il s'agit d'une liste de répertoires séparés par des deux-points dans lesquels 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 cd somewhere vous mènerait à /user/something/somefolders/somewhere (en supposant qu'il n'y ait aucun répertoire nommé somewhere dans le répertoire actuel).

Sinon, si vous ne souhaitez pas faire référence au dossier somewhere par son nom réel, vous pouvez créer un répertoire caché contenant un lien symbolique vers /user/something/somefolders/somewhere avec le nom que vous souhaitez utiliser. Il peut également contenir des liens vers d’autres annuaires que vous consultez fréquemment. Puis définissez CDPATH pour inclure le chemin d'accès à ce répertoire caché. Notez bien qu'avec cette méthode, si vous cd somewhere puis cd .., vous allez vous retrouver dans le répertoire caché. Cela peut ou peut ne pas être un problème pour vous.

32
David Z

Deux raccourcis que j'utilise tout le temps pour des choses comme celle-ci:

Alias ​​

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

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

Liens symboliques

ln -s/long/chemin/vers/un/autre/dossier/raccourci

Cela créera un fichier à /shortcut qui renvoie à /long/path/to/some/other/folder. Ensuite, vous pouvez taper cd /shortcut à la place. Le bémol de ceci est qu'il remplit votre répertoire racine (ou le répertoire dans lequel vous mettez les liens) assez rapidement. Je préfère les alias.

41
John T

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

14
Janne Pikkarainen

Regardez la commande "alias".

En csh:

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

En sh:

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

Mais j'aime bien la solution symlink:

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

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

9
robert

Une autre chose à faire est de stocker le chemin en question dans une variable d’environnement. Ajoutez ces lignes à votre fichier ~/.profile:

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

Vous pouvez ensuite accéder au répertoire avec

cd "$somedir"
6
terdon

La méthode alias décrite par d’autres réponses est la route la plus directe.

Une autre option consiste à essayer autojump , décrit comme "une commande cd qui apprend". Plus de description dans cet article de LifeHacker .

1
Doug Harris