web-dev-qa-db-fra.com

donner un nom court pour le répertoire fréquemment ouvert via un terminal

Chaque fois que je souhaite passer à un répertoire que j'utilise très souvent, je dois taper ce chemin de répertoire long:

cd /media/prasanth/01D0F888E7BC91801/github projects

ou je dois utiliser l'interface graphique pour entrer dans le dossier et ouvrir le terminal.

Est-il possible d'attribuer ce long chemin à un seul nom et de le saisir via le terminal, comme

cd mygitfiles

?

8
Prasanth P

Jusqu'à présent, deux excellentes réponses ont été données, il me reste une possibilité:

ln -s /media/prasanth/01D0F888E7BC91801/github/projects ~/mygitfiles

Crée un lien symbolique vers le long chemin dans votre maison.

Les liens symboliques sont comme des raccourcis qui pointent vers un autre fichier ou répertoire, et la plupart des programmes les traiteront normalement. vous pouvez en toute sécurité rm le lien symbolique sans affecter le chemin sur lequel il pointe. vous pouvez observer où pointe le lien symbolique avec ls -l.

Vous pouvez utiliser le lien symbolique comme s'il s'agissait d'un répertoire réel et faire cd ~/mygitfiles.

Notez que ~ est simplement un alias pour votre répertoire personnel, ce qui pourrait être un endroit judicieux pour un tel lien symbolique.

Sachez que l’utilisation de ce lien symbolique affecte en définitive votre répertoire de travail actuel.

Dans le cas général, je suggérerais la réponse de Nicolas Delvaux ou d'Eduardo Cola, mais l'utilisation d'un lien symbolique pourrait être tout aussi utile, voire plus utile.

17
Paul Grove

Vous pouvez stocker votre chemin dans une variable d'environnement. Courir:

nano $HOME/.bashrc

Allez à la fin du fichier, créez une nouvelle ligne et écrivez:

export mgf="/media/prasanth/01D0F888E7BC91801/github projects"

Frappé Ctrl+O et ENTER pour sauvegarder le fichier. Frappé Ctrl+X pour quitter. Maintenant, déconnectez-vous et connectez-vous. Lorsque vous ouvrez un terminal (en cours d’exécution), vous pouvez exécuter cd "$mgf" pour accéder à votre répertoire.

9
Eduardo Cola

Vous devriez utiliser des alias. Voir help alias.

En un mot, vous pouvez définir un alias en tapant:

alias whatever="cd /media/prasanth/01D0F888E7BC91801/github/projects"

Ensuite, taper whatever vous mènera au dossier défini.

Vous pouvez mettre la commande alias dans votre ~/.bashrc pour la conserver en permanence.

8
Nicolas Delvaux

Il semble que vous cherchiez cdargs .

Il fournit des signets pour la commande cd.

Vous pouvez ajouter un favori en exécutant mark NAME dans le répertoire des favoris. Vous pouvez ensuite accéder à ce répertoire de n’importe où en utilisant cv NAME, NOM étant le nom du signet.

8
rbialon

Vous pouvez jeter un oeil à autojump . Il apprend fondamentalement que vous utilisez cd en construisant une base de données des dossiers que vous visitez et en leur attribuant des poids: plus vous visitez un dossier, plus il est haut dans la base de données.

Ensuite, après avoir cd plusieurs fois dans un répertoire (même une fois suffit):

cd /media/prasanth/01D0F888E7BC91801/github projects

vous pouvez y accéder en utilisant la commande j:

j proj

Vous pouvez utiliser n’importe quelle partie du nom du répertoire comme argument de la commande j. La première entrée correspondante correspond, ce qui est utile lorsque vous ne vous souvenez pas du chemin complet.

Il a quelques autres fonctionnalités qui sont plutôt chouettes telles que passer à l'enfant (jc). Je vous encourage à l'inspecter.

4
Ciprian Tomoiagă

Bash a un petit problème pratique appelé CDPATH. Lorsque cd foo cherche un chemin relatif, il cherche dans le répertoire actuel par défaut. En définissant CDPATH sur une liste de préfixes de chemin séparés par deux points, nous pouvons accéder à cette cible si aucune correspondance n'a été trouvée. Cela fonctionne de manière similaire à la variable PATH lors de la recherche de fichiers exécutables.

Dans votre cas, vous pouvez utiliser export CDPATH=.:/media/prasanth/01D0F888E7BC91801/github/ dans votre ~/.bashrc, puis exécuter cd projects/foo de n'importe où pour accéder à /media/prasanth/01D0F888E7BC91801/github/projects/foo.

Toutefois, cela ne fonctionnera pas si votre répertoire actuel contient une entrée correspondante. Cela peut donc entraîner des modes d'erreur déroutants. Il y a des gens qui ne jurent que par cette méthode, je préfère moi-même plutôt liens symboliques dans le répertoire personnel comme suggéré par Paul Grove.

3
amon

Je taperais

cd /media/prasanth/01D0F888E7BC91801/github projects #demo-proj

la première fois que j'exécute cette commande. Le contenu après # est un commentaire.

Ensuite, pour l'appeler, je voudrais CtrlR et tapez de (une sous-chaîne commode de demo-proj), jusqu'à ce que la commande précédente soit affichée.

(reverse-i-search)`de': cd /media/prasanth/01D0F888E7BC91801/github projects #demo-proj

Je peux frapper CtrlR encore une fois pour des utilisations encore plus tôt.


Cela n'a pas besoin de définir/remplacer des alias permanents. Je le fais aussi pour les longues commandes ou même netstat -tulpn que je trouve cryptique.

1
Jesvin Jose