Windows reconnaît-il les liens symboliques de Linux?
14
Je me demandais simplement comment un système Windows gère les liens symboliques. Ma meilleure supposition est qu'il ne les reconnaîtra pas, mais je ne suis pas tout à fait sûr.
Comment prévoyez-vous d'exposer Windows à un lien symbolique? Il ne comprend pas les systèmes de fichiers qui les prennent en charge (sauf NTFS, qui a quelque chose qui n'est pas totalement différent des liens symboliques qui sont principalement cachés de l'interface utilisateur).
Gilles 'SO- arrête d'être méchant'
Oh .. alors que se passe-t-il si vous avez monté votre partition Windows et que vous essayez d'y mettre un lien symbolique? Cela fonctionne-t-il comme s'il s'agissait d'un dossier? (Si c'est le cas, je me demande ce qui se passe avec RECURSION ...)
Dépend de la version Windows et de la configuration côté serveur lorsque nous parlons de disques non locaux.
Depuis Windows Vista, Windows a une idée des liens symboliques, mais la sémantique diffère. Mais le problème le plus important ici devrait être les noms de chemin, qui suivent une syntaxe différente. Pour commencer: arborescence de répertoires à racine unique du côté unixoïde et plusieurs lettres de lecteur en tant que racines du côté Windows.
Du côté unixoïde, les liens symboliques sont simplement des fichiers texte avec un drapeau spécial. Côté Windows, le mécanisme sous-jacent est appelé un point d'analyse. Cela indique au gestionnaire d'objets de le passer à des filtres enregistrés particuliers ( la métadate pour cela est stockée dans les points d'analyse). Windows 2000 a déjà introduit un type de points d'analyse appelés points de jonction (à peu près, mais pas tout à fait, des liens symboliques de répertoire). Avec Vista, ils ont introduit des liens symboliques vers des fichiers et des répertoires, également sur des lecteurs distants. Et les liens symboliques sur les lecteurs distants sont également pris en charge dans une certaine mesure.
Le point principal est de savoir si le pilote du système de fichiers - lorsqu'il est exécuté localement - ferait des ajustements aux chemins que Windows voit. Dans un tel cas, cela fonctionnerait pour certains liens symboliques locaux / relatifs. Pour les chemins absolus comme cibles, les choses deviendront difficiles et impossibles à déduire ce que l'on veut dire. Idem pour les liens de liens symboliques distants (vers des "partages réseau").
En ce qui concerne le côté Mac, je n'en ai aucune idée et cela pourrait avoir un sens en tant que question distincte. Mais tant que le côté serveur transmet l'information qu'il s'agit d'un lien symbolique, je ne vois aucun problème, car ils suivent tous les deux la sémantique SUS (contrairement à Windows).
Tenez compte des points de montage latéraux Linux:
/dev/sda1 /
/dev/sda2 /home
/dev/sda3 /var
Et maintenant, considérons un lien symbolique /home/paul/fstabpointant vers /etc/fstab. Ils sont situés sur deux volumes différents que Windows - s'il est capable de les voir via un pilote de système de fichiers (qui fonctionne!) - ne peut pas dire qu'ils appartiennent ensemble comme /etc/fstabdécrit. Ainsi, le lien, que Windows verrait sous un dossier \paul\fstab, même s'il était traduit, pointerait vers \etc\fstab, qui n'existe pas /dev/sda2. Et si ce lien symbolique pointait vers le chemin relatif, les ../../etc/fstabchoses ne changeraient pas du tout.
L'essentiel: Donc, même si cela peut être envisagé pour que cela fonctionne pour certains cas d'angle, le fait que la sémantique et la syntaxe diffèrent des deux côtés de la clôture, il est peu probable que vous trouviez une méthode pratique et générique qui fonctionne.
Wow, c'était une réponse très détaillée et approfondie! Merci d'avoir fourni toutes ces informations! En fait, je n'avais aucune idée que les liens symboliques de Linux étaient basés sur du texte. Merci encore pour toutes les informations utiles ici.
Je pense que j'ai fait un sym-lien sur XP, êtes-vous sûr que Vista a été le premier?
ctrl-alt-delor
ntfsprend en charge les points de montage (car si vous n'aimez pas toutes ces lettres).
ctrl-alt-delor
@richard: en fait, les points de montage de volume sont le terme technique pour ce que vous voyez comme des lettres de lecteur dans le sous-système Win32. Cependant, vous avez raison en ce sens qu'un point de montage de volume peut également être défini sur un dossier existant (qui est très similaire aux points de jonction). La caractéristique technique utilisée pour implémenter des points de montage de volume, des points de jonction et des liens symboliques est appelée points d'analyse . Et oui, Vista a été le premier à prendre en charge les liens symboliques. Sur XP, vous n'auriez pu le faire que dans un autre sous-système (par exemple POSIX) qui, cependant, a une sémantique différente, comme ci-dessus.
0xC0000022L
2
La réponse de 0xC0000022L est approfondie pour le côté Windows des choses. Le Mac peut reconnaître les liens symboliques de Linux; cependant, Linux ne peut pas reconnaître les alias créés dans le Finder du Mac (les liens symboliques créés à l'aide de ln -s fonctionnent correctement).
Réponses:
Dépend de la version Windows et de la configuration côté serveur lorsque nous parlons de disques non locaux.
Depuis Windows Vista, Windows a une idée des liens symboliques, mais la sémantique diffère. Mais le problème le plus important ici devrait être les noms de chemin, qui suivent une syntaxe différente. Pour commencer: arborescence de répertoires à racine unique du côté unixoïde et plusieurs lettres de lecteur en tant que racines du côté Windows.
Du côté unixoïde, les liens symboliques sont simplement des fichiers texte avec un drapeau spécial. Côté Windows, le mécanisme sous-jacent est appelé un point d'analyse. Cela indique au gestionnaire d'objets de le passer à des filtres enregistrés particuliers ( la métadate pour cela est stockée dans les points d'analyse). Windows 2000 a déjà introduit un type de points d'analyse appelés points de jonction (à peu près, mais pas tout à fait, des liens symboliques de répertoire). Avec Vista, ils ont introduit des liens symboliques vers des fichiers et des répertoires, également sur des lecteurs distants. Et les liens symboliques sur les lecteurs distants sont également pris en charge dans une certaine mesure.
Le point principal est de savoir si le pilote du système de fichiers - lorsqu'il est exécuté localement - ferait des ajustements aux chemins que Windows voit. Dans un tel cas, cela fonctionnerait pour certains liens symboliques locaux / relatifs. Pour les chemins absolus comme cibles, les choses deviendront difficiles et impossibles à déduire ce que l'on veut dire. Idem pour les liens de liens symboliques distants (vers des "partages réseau").
En ce qui concerne le côté Mac, je n'en ai aucune idée et cela pourrait avoir un sens en tant que question distincte. Mais tant que le côté serveur transmet l'information qu'il s'agit d'un lien symbolique, je ne vois aucun problème, car ils suivent tous les deux la sémantique SUS (contrairement à Windows).
Tenez compte des points de montage latéraux Linux:
Et maintenant, considérons un lien symbolique
/home/paul/fstab
pointant vers/etc/fstab
. Ils sont situés sur deux volumes différents que Windows - s'il est capable de les voir via un pilote de système de fichiers (qui fonctionne!) - ne peut pas dire qu'ils appartiennent ensemble comme/etc/fstab
décrit. Ainsi, le lien, que Windows verrait sous un dossier\paul\fstab
, même s'il était traduit, pointerait vers\etc\fstab
, qui n'existe pas/dev/sda2
. Et si ce lien symbolique pointait vers le chemin relatif, les../../etc/fstab
choses ne changeraient pas du tout.L'essentiel: Donc, même si cela peut être envisagé pour que cela fonctionne pour certains cas d'angle, le fait que la sémantique et la syntaxe diffèrent des deux côtés de la clôture, il est peu probable que vous trouviez une méthode pratique et générique qui fonctionne.
la source
ntfs
prend en charge les points de montage (car si vous n'aimez pas toutes ces lettres).La réponse de 0xC0000022L est approfondie pour le côté Windows des choses. Le Mac peut reconnaître les liens symboliques de Linux; cependant, Linux ne peut pas reconnaître les alias créés dans le Finder du Mac (les liens symboliques créés à l'aide de ln -s fonctionnent correctement).
la source
.lnk
fichiers).