12 votes

Puis-je raccourcir la saisie nécessaire pour `cd` dans certains répertoires bien connus ?

Je me retrouve à ouvrir un terminal puis à CD'ing beaucoup de choses dans le même répertoire dont le chemin est très long.

Cela signifie que je fais beaucoup de cd et que j'utilise la tabulation pour accélérer les choses.

Ce serait génial si je pouvais avoir une sorte de lien vers ce répertoire, puis y accéder pour me retrouver rapidement dans le répertoire profond.

Est-ce possible ?

25voto

Rich Points 2429

Voici la façon de traiter les chemins d'accès complexes pour cd fréquemment.

mkdir ~/Links
ln -s /complexpath/there ~/Links

cela créera le lien symbolique

~/Links/there

Pour utiliser ce nouveau Links efficacement, si votre shell de connexion est bash il suffit d'inclure cette commande dans votre ~/.profile (qui est utilisé par tous les shells de style Bourne) bash , ksh , zsh ) :

CDPATH=~/Links:.
export CDPATH

Cela signifie que pour chaque cd votre shell cherchera dans 2 répertoires pour trouver un nom de fichier local :

~/Links
.

Vous n'aurez pas besoin de redémarrer votre session pour le tester, il suffit de l'exécuter :

. ~/.profile

ce qui signifie qu'il suffit de lire mon ~/.profile . (Vous n'aurez pas à le mettre dans votre ~/.bashrc puisqu'il n'est pas nécessaire de répéter la même initialisation de variable lorsque vous ne la modifiez pas).

Une fois que vous l'aurez testé, vous pourrez redémarrer votre session ;).

A partir de maintenant, chaque fois que vous voudrez aller à there vous devrez taper :

cd there

11voto

Brad Points 3363

Définir un alias est un moyen très simple d'avoir une abréviation courte pour une commande plus longue. Une fois que vous avez bien défini vos alias, vous pouvez créer une section dans votre fichier .bashrc (ou autre fichier de démarrage) afin de ne pas avoir à retaper ces alias pour chaque nouveau shell que vous démarrez :

dans .bashrc :

alias ws4='ssh qsv-rhws4'
alias httpdlog='cd /var/log/httpd/'
alias EC2='ssh -i BMTestEC2.pem ec2-user@xxxxxxxx.compute.amazonaws.com'

etc.

Déconnectez-vous et reconnectez-vous (ou exécutez simplement . ~/.bashrc ) et maintenant vous pouvez juste taper httpdlog et il exécute le cd. Ou ws4 et il exécute réellement la commande ssh, etc.

Ainsi, il n'est plus nécessaire de créer un grand nombre de liens vides qui donneraient à votre répertoire d'accueil un aspect désordonné.

11voto

Tyilo Points 5337

Essayez d'utiliser soit autojump ou z .

Après avoir installé l'un ou l'autre, il suffit cd comme d'habitude et ils apprennent vos répertoires les plus visités et vous permettent d'y aller en tapant seulement une partie du chemin :

$ cd /very/long/path/foobar
$ cd
$ z foobar
$ echo $PWD
/very/long/path/foobar

Je préfère z des deux.

7voto

adam Points 11

Je recommande vivement fasd qui est similaire à autojump et z mais meilleur IMHO. Du site web :

Fasd (prononcé comme "fast") est un booster de productivité en ligne de commande. Fasd offre un accès rapide aux fichiers et aux répertoires pour les shells POSIX. Il s'inspire d'outils comme autojump, z et v. Fasd garde la trace des fichiers et des répertoires auxquels vous avez accédé, afin que vous puissiez les référencer rapidement dans la ligne de commande.

Le nom fasd vient des alias suggérés par défaut f(fichiers), a(fichiers/répertoires), s(show/search/select), d(répertoires).

Fasd classe les fichiers et les répertoires par "frecency", c'est-à-dire à la fois par "fréquence" et "récence". Le terme "frecency" a été inventé par Mozilla et utilisé dans Firefox (lien).

4voto

Amory Points 213

Vous pouvez également créer un alias. Mettez ce qui suit dans un fichier tel que .bashrc ou .aliases

alias shortcut='cd ~/path/to/deep/deep/deep/directory/'

Ensuite, assurez-vous que le fichier dans lequel il se trouve est source d. Mes alias sont dans .bashrc, que je source avec cette ligne dans .bash_profile : source ~/.bashrc

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X