web-dev-qa-db-fra.com

Comment puis-je accéder à un répertoire d'alias du terminal Mac OSX?

Est-il possible d'entrer dans un répertoire d'alias à partir de Shell avec la commande "cd"? Il retourne toujours que "htdocs" n'est pas un répertoire.

Edit: J'ai créé le raccourci avec l'interface graphique du système d'exploitation -> cliquez avec le bouton droit de la souris sur le répertoire htdocs et choisissez "Alias ​​..." (j'utilise un système d'exploitation allemand si ce n'est pas un alias. répertoire de base (parce que mon terminal commence à partir de là quand je l’ouvre).

Tout ce que je veux, c'est ouvrir mon terminal et taper "cd htdocs" pour que je puisse travailler à partir de là.

53
codepushr

vous pouvez y associer un lien symbolique.

ln -s SOURCE TARGET

par exemple.

ln -s ~/Documents/books ~/Desktop/

Référence

Entrez dans un répertoire via un alias du terminal Mac OS X

53
Marvin W

Tout ce que je veux, c'est ouvrir mon terminal et taper cd htdocs pour que je puisse travailler à partir de là.

L'approche la plus simple consiste probablement à ignorer les liens et à ajouter le répertoire parent de votre répertoire htdocs à la variable d'environnement CDPATH. bash(1) vérifiera le contenu de la variable d'environnement CDPATH lorsque vous tapez cd foo pour rechercher le répertoire foo dans l'un des répertoires répertoriés. Cela fonctionnera quel que soit votre répertoire de travail actuel et sera plus simple que de définir des liens symboliques.

Si le chemin d'accès à votre htdocs est situé /srv/www/htdocs/, vous pouvez utiliser CDPATH=/srv/www. Ensuite, cd foo devrait d'abord rechercher /srv/www/foo/ et le modifier s'il existe; sinon, il va chercher foo dans le répertoire de travail en cours et y changer s'il existe. (Cela pourrait être déroutant si vous avez plusieurs répertoires htdocs sur votre système; dans ce cas, CDPATH=.:/srv/www vous permettrait de passer facilement à un répertoire enfant tout en utilisant la version /srv/www/htdocs/ si aucun répertoire ./htdocs n'est présent.)

Vous pouvez ajouter la ligne CDPATH=/srv/www à votre fichier ~/.bashrc pour qu’elle fonctionne à chaque démarrage d’un terminal.

10
sarnold

Personnellement, je l’utilise pour travailler rapidement dans le répertoire présent dans un de mes volumes sur mon Mac.

Ouvrez votre ~/.bash_profile, créez un alias dans le répertoire en ajoutant ceci:

alias cdh="cd /Volumes/Haiku/haiku/src/apps/superprefs"

Enregistrez-le, redémarrez votre terminal. Maintenant, en tapant cdh dans votre terminal, le répertoire de travail doit être remplacé par celui mentionné comme alias.

8
Anirudh M

Je ne sais pas comment OSX expose les liens d’alias, mais puisque vous utilisez bash, vous pouvez créer une variable dans votre fichier .bashrc.

Sur sa propre ligne de vente:

htdocs=YourDirectoryPath/

Une fois que vous avez redémarré bash, vous pouvez simplement taper cd $htdocs

6
Gibron

Il existe un vieux conseil sur macworld pour le faire d’une manière intégrée à BASH: Activer 'cd' dans les alias de répertoires du Terminal

De plus, voici une réponse qui utilise cette solution sur superutilisateur .

3
ThomasW

Vous pourrez peut-être utiliser osascript pour faire cela - cette commande semble fonctionner:

cd "` osascript -e "à l'exécution d'un fichier" -e "définissez un fichier sur un fichier POSIX aFichier sous un alias" -e "indiquant à l'application"\"" Finder "\" "de renvoyer le chemin POSIX de ((élément d'origine d'un fichier)) text) "-e" end run "path_to_my_Finder_alias 2>/dev/null`"

Fondamentalement, cette commande exécute un AppleScript qui trouve le chemin de destination de l'argument (path_to_my_Finder_alias) dans un sous-shell, puis l'enveloppe entre guillemets et le remplace par le répertoire.

Peut-être que quelqu'un avec un peu plus d'expertise en bash pourra le transformer en alias ou en fonction de bash.

1
Bryan

essayer:

alias cdgo=`echo cd /root/go/`

cdgo sera exécuté, puis la commande "cd/root/go /" sera entrée et elle changera de répertoire dans le processus en cours du terminal

Ca marche sur mes centos, pas de test avec osx

0
David