J'essayais de créer un lien symbolique à l'aide de la commande suivante:
ln -s "~/Foo Bar/" Foo
... mais cela n'a pas fonctionné (c'est-à-dire lorsque je vais dans le Finder et que j'essaie de double-cliquer dessus, il indique qu'il pointe vers un chemin non valide et m'invite à supprimer l'alias ou à le corriger). J'ai dû renommer le dossier FooBar
, puis exécuter la commande suivante:
ln -s ~/FooBar/ Foo
Comment puis-je créer le lien sans avoir à supprimer l'espace du nom du dossier?
Je cherche un moyen de le faire dans Terminal et non dans l'interface utilisateur du Finder.
ln -s
crée des liens symboliques. Le Finder crée des alias. Ils sont presque identiques dans leur utilisation pratique et courante, mais il est important de reconnaître qu'ils sont différents . Les liens symboliques pointent vers un chemin de répertoire, tandis que les alias pointent vers un fichier. Si vous avez tous deux pointé vers le même fichier et que vous déplacez le fichier vers un dossier différent, puis créez un nouveau fichier dans l'ancien dossier, l'alias pointera vers l'original déplacé et le lien symbolique pointera vers le nouveau fichier.ln -s ~/Foo<tab>
(où <tab> désigne la touche tab (tab) réelle de votre clavier), s'il n'y a qu'un seul dossier qui commence par "Foo",~
alors il sera automatiquement élargir le chemin vers~/Foo\ Bar/
.Réponses:
Les guillemets empêchent
~
d'être étendus dans votre dossier de base, vous devez donc soit citer uniquement la partie avec l'espace qu'il contient:Remarque: exactement combien est cité n'a pas d'importance, tant que l'espace est dans la partie citée et que le ~ / ne l'est pas.
~/Foo" "Bar/
,~/"Foo Bar"/
,~/Fo"o B"ar/
Etc sont tous équivalents. De plus, les guillemets simples et doubles ont le même effet sur les espaces (bien qu'ils diffèrent sur les autres caractères), donc~/'Foo Bar/'
,~/Foo' 'Bar/
etc. fonctionnerait également.Vous pouvez également utiliser un échappement pour empêcher que l'espace ne soit traité comme un séparateur:
la source
"$HOME/Foo Bar/"
.~
,$HOME
devrait être entre guillemets pour éviter toute confusion si votre répertoire personnel contient des espaces ou d'autres caractères étranges."$HOME/Foo Bar/"
(comme vous le suggérez),"$HOME"/Foo" "Bar/
,"$HOME"/Foo\ Bar/
, etc fonctionnera.Je l'ai testé moi-même. Je n'ai pas de problème avec un espace dedans:
ls montre:
$ linkToFoo_Bar -> /Users/joe/test/foo bar/
et cela fonctionne dans le terminal et le finder sans aucun problème.la source
~
aide.