Par alias, je veux dire le raccourci de dossier créé lorsque vous cliquez avec le bouton droit sur un dossier dans le Finder et sélectionnez "Créer un alias". Je peux parcourir les liens symboliques dans Terminal avec cd
, mais il ne fonctionne pas sur les alias: bash: cd: example-alias: Not a directory
. Est-il possible de changer de répertoire vers la destination d'un alias dans Terminal?
9
Réponses:
Pour activer le cd'ing dans un alias de dossier, j'ai trouvé ce qui suit dans Mac OS X Hints .
Compilez le code source ci-dessous avec la commande suivante:
Cela créera l'exécutable «getTrueName» dans le même répertoire que la source. Vous pouvez l'ajouter à votre PATH, ou simplement le copier directement dans / usr / bin ou / usr / local / bin afin qu'il soit facile d'accès.
Code source C pour getTrueName (copiez le texte et enregistrez le fichier sous getTrueName.c dans votre répertoire personnel):
Incluez les éléments suivants dans ~ / .bash_profile ou créez un nouveau fichier ~ / .bash_profile avec le contenu suivant:
Vous devrez probablement redémarrer Terminal pour charger votre .bash_profile modifié.
Testé dans Yosemite 10.10.2 & gcc 4.2 (Xcode 6.2) et cela fonctionne.
Une approche similaire est disponible sur superuser.com
la source
Je n'ai pas testé la réponse de @klanomath, mais il y avait auparavant une bibliothèque Python pour obtenir la cible d'un alias, mais le support Carbon a été supprimé des frameworks Apple. Cela peut être fait dans Objective C voir https://stackoverflow.com/a/21151368/838253 .
Le mieux est d'utiliser des liens symboliques, mais malheureusement le Finder ne vous permet pas de les créer.
J'ai écrit un service OS X qui crée des liens symboliques (qui sont pris en charge par le Finder et le terminal). Cela exécute le script bash suivant dans un flux de travail du Finder. (Malheureusement, il ne semble pas possible de publier le code Automator dans un format lisible).
la source
curFolder
etlinkFile
ne sont pas utilisées, alors pourquoi sont-elles présentes? Il devrait y avoir des espaces autour de l'opérateur de comparaison, par exemple,$fileExists == ""
et envisagez d'utiliser$(..)
des raccourcis hérités.Voici mon point de vue à ce sujet.
ajoutez et chargez cette fonction dans votre .profile.
Mise à jour.
J'ai utilisé la
builtin cd
ligne indiquée dans la réponse @klanomath qui vous permet de remplacer la commande cd. Nous pouvons donc maintenant utiliser:cd /path/to/example-alias
ou
cd /path/to/example
La fonction doit retourner et cd au chemin d'origine des alias d'origine ou le chemin normal.
la source
Alors qu'un lien symbolique (alias UNIX) ressemble à un alias du Finder dans le Finder, il s'agit de deux types d'alias complètement différents.
Un lien symbolique ne maintiendra le chemin vers lequel il mène et se rompra définitivement ou temporairement que si la ressource est déplacée ou sur un lecteur ou un partage déconnecté respectivement.
Un alias du Finder est techniquement un fichier ordinaire contenant des instructions pour le Finder. Le Finder peut utiliser ces informations pour localiser un fichier / répertoire cible déplacé dans une certaine mesure. Si une ressource cible d'un alias se trouve sur un point de partage réseau monté, elle contient également des informations sur l'élément de trousseau à utiliser pour vous connecter au point de partage afin de l'ouvrir.
Ainsi, à moins que vous n'écriviez un script ou un programme pour lire le fichier d'alias du Finder, il ne l'utilisera pas comme répertoire, mais comme fichier dans Terminal.
Vous pouvez également supprimer l'alias du Finder actuel et créer un lien symbolique à sa place. La commande serait
ln -s /path/to/original
de créer un lien symbolique dans le répertoire courant. Le chemin peut être un chemin complet ou relatif.la source
osascript[9807:7154723] CFURLGetFSRef was passed an URL which has no scheme (the URL will not work with other CFURL routines)
À l'aide de cette astuce , j'ai modifié l'applescript de @ markunte pour supprimer le message d'avertissement ci-dessus
la source
Comme la plupart des systèmes d'exploitation (à part Windows), OS X prend en charge les scripts Bash. Créez d'abord le fichier sur votre bureau (ou à l'emplacement que vous souhaitez):
touchez ~ / Desktop / PlexConnect.sh Ensuite, définissez les autorisations du fichier de sorte qu'il soit exécutable:
chmod + x ~ / Desktop / PlexConnect.sh Vous pouvez ensuite éditer le contenu du script avec l'éditeur de texte de votre choix, assurez-vous simplement qu'il commence par la ligne suivante afin que le système sache l'exécuter en utilisant le shell (Bash):
! / bin / bash
Le fichier peut ensuite être double-cliqué, en lançant Terminal et en l'exécutant.
Une solution plus élégante pour cela, cependant, peut être de créer une application AppleScript qui exécute la commande pour vous. Ouvrez l'application "Script Editor" et collez-la comme suit:
faire le script shell "/Applications/PlexConnect-master/PlexConnect.py" avec des privilèges d'administrateur Enregistrez-le comme une "Application", en le nommant comme vous le souhaitez. Lors de son ouverture, il vous donnera l'invite de mot de passe standard d'OS X, exécutera le script, puis se fermera.
la source