6 votes

OS X ne crée pas de liens symboliques, mais des alias.

Peu importe comment j'essaie de créer un lien symbolique, OS X refuse de jouer le jeu et crée plutôt un alias. J'ai essayé plusieurs outils et aussi à travers le terminal en utilisant la commande ln commandement.

Je suis sur une nouvelle installation et j'utilise le ln fonctionnait bien avant. Une idée de ce qui se passe ?

Merci, Will

12voto

Tony Williams Points 11219

Tentons quelques expériences, et examinons certaines choses.

Dans un émulateur de terminal, tel que Terminal.app dans /Applications/Utilitaires, allez dans votre répertoire personnel ( cd ~ ) et créer un répertoire ( mkdir [directory] ).

Assurez-vous d'aller dans le répertoire que nous venons de créer ( cd [directory] ).

cd ~
mkdir directory
cd directory

Après cela, créez un fichier ; un simple fichier texte fera l'affaire :

echo "This is a simple text file" > originalfile.txt
ls -l@

Maintenant, essayez de créer un lien dur, comme ceci :

/usr/bin/ln originalfile.txt hardlink.txt

Ensuite, essayez de créer un lien symbolique, comme ceci :

/usr/bin/ln -s originalfile.txt symboliclink.txt

Maintenant, ouvrez le répertoire dans le Finder avec open . et faire un alias.

Dans l'émulateur de terminal que vous avez ouvert auparavant, un autre ls devrait nous apporter ça :

Testarossa:test tonyw$ ls -l@
total 2528
-rw-r--r--  2 tonyw  staff      19 25 Jan 15:51 file.txt
-rw-r--r--@ 1 tonyw  staff  426048 25 Jan 15:52 file.txt alias
com.apple.FinderInfo        32 
com.apple.ResourceFork  850686 
-rw-r--r--  2 tonyw  staff      19 25 Jan 15:51 hard.txt
lrwxr-xr-x  1 tonyw  staff       8 25 Jan 15:53 symbolic.txt -> file.txt

L'interface graphique du Finder devrait également donner ce résultat :

The Finder GUI with the original file, a hard link, and a symbolic link.

Veuillez noter que l'interface graphique du Finder affiche un lien symbolique comme un alias.

Un lien symbolique est no la même chose qu'un alias. Un véritable alias possède des attributs plus étendus qu'un lien symbolique.

Dans l'interface graphique du Finder, il n'y a aucun moyen de savoir qu'un lien dur est autre chose qu'un fichier.

Pour tous les liens symboliques, il y a un 'l' à l'extrémité gauche des attributs, et la balise ls nous indique où elle pointe.

Quand vous essayez ça, qu'est-ce que vous obtenez exactement ?

2voto

Douglas Points 10417

Vous ne pouvez pas créer nativement des liens symboliques dans le Finder. seulement des pseudonymes. Vous pouvez toutefois utiliser AppleScript pour créer des liens symboliques si c'est ce dont vous avez besoin en fin de compte.

Pour comprendre pourquoi il en est ainsi, nous devons comprendre la différence entre les alias, les liens symboliques et les liens physiques :

  • Alias sont Finder c'est-à-dire qu'ils ne fonctionnent que dans Finder et non dans l'environnement UNIX de OS X. Ce sont de petits fichiers de données et votre shell (bash, sh, zsh, etc.) ne sait pas comment les interpréter.

  • Liens symboliques (liens symboliques en abrégé) sont raccourcis qui font partie du système de fichiers *NIX. Finder les traite comme des quasi alias, vous pouvez les voir et les utiliser, mais ils ne contiennent aucune des métadonnées supplémentaires que les alias de Finder contiennent.

  • Liens durs sont assez similaires aux alias dans le Finder, sauf qu'ils ne contiennent pas le chemin d'accès au fichier d'origine. Les liens durs apparaissent comme des fichiers normaux dans le Finder ; vous ne saurez pas que vous ne travaillez pas avec le fichier original, mais avec le fichier lié. Les liens durs sont ce que ln crée par défaut lorsque vous omettez l'option -s drapeau.

Pour plus de détails, j'ai écrit sur ce sujet de manière plus approfondie à l'adresse suivante cette réponse .

L'essentiel ici est que vous ne pourrez créer des liens symboliques et des liens durs que dans le Terminal (environnement UNIX de OS X) mais que vous pourrez les utiliser globalement. Vous ne pourrez créer et utiliser des alias que dans le Finder. (IMO) Pour cette raison, j'évite les alias et utilise les liens symboliques presque exclusivement.

1voto

MGlacier Points 2220

OS X peut créer les deux, mais de manière différente. Comme vous semblez utiliser le mot alias il s'agit d'un raccourci de fichier (ou de répertoire) qui a été créé dans le Finder pour tout ce que vous y voyez, alors qu'un lien symbolique (symlink) peut être créé dans une instance shell lancée par votre application terminal en utilisant la commande :

ln -s <source file path><target file path>

Un lien symbolique ne peut pas être créé directement dans une fenêtre du Finder (indirectement peut-être en appelant un AppleScript script depuis un shell script ou vice-versa).

Mais il y a une ambiguïté ici car il existe un autre type d'alias, qui est un surnom défini par l'utilisateur que vous pouvez donner à une séquence de commandes shell lorsque vous ouvrez une session de terminal. Par exemple, dans une fenêtre du shell bash :

$ alias listall=ls -al`

Ceci définit un surnom listall pour la commande ls -al pour lister tous les fichiers dans le répertoire courant. Dans ce contexte, le terme "alias" décrit les surnoms de commande - alias est en fait une commande intégrée au shell bash pour créer de tels surnoms.

Je ne suis pas un expert du système de fichiers OS X, juste un utilisateur et un scripteur, mais d'après ce que j'ai lu, la raison pour laquelle un alias Finder ne se casse pas sous OS X est qu'il contient un numéro de série unique pour son fichier cible (appelé numéro d'inode, qui existe pour chaque fichier et répertoire) qui est indépendant de son chemin d'accès. Cela signifie que si vous déplacez le fichier cible dans un autre répertoire, l'alias continuera à pointer vers ce fichier, alors qu'un lien symbolique ne fonctionnerait pas car il utilise le chemin d'accès au fichier cible.

-1voto

Ray Cote Points 109

J'ai eu ce problème. J'ai essayé d'enregistrer le lien dans un autre dossier. Avec un peu d'essais et d'erreurs, ça a marché. Je ne sais pas pourquoi.

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