Question Quelle est la différence entre les liens physiques NTFS et les jonctions de répertoires?


Le titre dit tout ... quelle est la différence? Quand en utiliser un et quand utiliser l'autre?

Ajoutée: Notez que Points de jonction, Liens durs et Liens symboliques (soft) sont trois choses distinctes sur NTFS.


65
2017-11-09 10:53


origine


Selon la documentation de Microsoft, il existe trois catégories distinctes: Lien dur: msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx; Jonction (soft-link): msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx; Lien symbolique: msdn.microsoft.com/en-us/library/aa363878%28VS.85%29.aspx. - Josip Medved


Réponses:


Les fichiers de données NTFS sont stockés avec tous leurs attributs comme un "inode" avec un ID et les noms de fichiers pointent vers l'inode. Tous les fichiers ont un + hardlink. certains outils peuvent créer des noms supplémentaires (liens durs) qui pointent vers le même inode, avec un compteur du nombre de noms pointant vers lui. Si le nombre passe à zéro, le système d'exploitation supprime le fichier, l'inode.

Des outils spéciaux, tels que LN, peuvent créer des noms de fichiers supplémentaires qui pointent vers des inodes existants, en utilisant un nom de fichier qui les pointe vers eux. Notez que tous les attributs de fichier, y compris les dates et les heures, sont stockés avec l'inode, pas le nom de fichier.

Les liens externes (supplémentaires) sont utiles lorsque vous souhaitez que différents noms pointent vers les mêmes données, qu'ils soient en lecture ou en écriture. Ils économisent de l'espace et des frais généraux. Cependant, ils décochent des programmes qui supposent que des noms différents indiquent des données différentes. Par exemple, si vous remplacez des références à des fichiers en double par des liens durs vers un seul fichier, vous avez supprimé toute sauvegarde que vous avez! Windows OS est un programme qui suppose que différents noms pointent vers différents jeux de bits.

Les liens durs doivent être sur le même volume physique et logique.

Ils sont utiles pour:

  • réduire les longueurs de chemin puisque Windows ne supporte que 256 caractères environ.

  • réduction de l'espace de stockage des fichiers de données en double - par exemple, vous pouvez avoir plusieurs sauvegardes d'une partition avec plusieurs arborescences complètes, mais avec des liens vers des fichiers qui n'ont pas changé depuis la sauvegarde précédente.

Les points de jonction sont plus désordonnés et utilisent des points d'analyse (que je ne comprends pas). Ils peuvent pointer vers différents volumes physiques ou logiques, mais ils doivent être sur le même ordinateur. Ils peuvent apparemment être utilisés comme des liens symboliques pour les répertoires, permettant un deuxième nom pour la même destination, mais limité à un seul ordinateur, et non plus à un seul volume.

Utile pour réduire la longueur des chemins ou simplifier le travail avec plusieurs programmes avec des noms de répertoires codés en dur.

Même mise en garde! De nombreux programmes supposent des noms différents = fichiers différents.

Et puis il y a des liens symboliques (qui peuvent traverser les réseaux), des raccourcis et des PIF et .....

Aussi quelques informations de Microsoft lui-même:

Fondamentalement, ils disent utiliser les liens durs uniquement pour les fichiers dans le même volume (lettre de lecteur de disque) et les points de jonction uniquement pour les répertoires sur le même ordinateur (ils peuvent couvrir différents volumes locaux).


29
2017-11-13 15:38



Le lien symbolique fonctionne-t-il sur le disque dur (NTFS) ou sur le concept de système d'exploitation Windows? - IsmailS


Définitions rapides:

Lien symbolique: Un lien vers un fichier ou un répertoire sur le même volume ou sur un volume différent (lettre de lecteur) ou même sur un fichier ou un répertoire distant (utilisant UNC sur son chemin).

Lien dur: Un lien vers un fichier sur le même volume (lettre de lecteur) uniquement. Chaque fichier (données de fichier) a au moins un lien physique (nom du fichier). La suppression de tous les liens physiques supprime efficacement le fichier.

Jonction: Un lien vers un répertoire sur le même volume ou un volume différent (lettre de lecteur) mais pas vers un répertoire distant.


Détails:

En supposant que vous travaillez avec des volumes NTFS dans Windows Vista / 7, vous pouvez utiliser l'outil de ligne de commande  MKLINK  créer les trois types de liens:

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is 
                a file symbolic link.

        /H      Creates a hard link instead of a symbolic link.

        /J      Creates a Directory Junction.

        Link    specifies the new symbolic link name.

        Target  specifies the path (relative or absolute) that 
                the new link refers to.

Liens symboliques: Un lien symbolique est un objet du système de fichiers qui pointe vers un autre objet du système de fichiers (par exemple, fichier / répertoire).

  • MKLINK peut être utilisé pour créer des liens symboliques. En utilisant le /D paramètre crée un lien symbolique de répertoire. MKLINK ne vérifie pas si la cible est un fichier ou un répertoire ou même si la cible existe! Cela signifie que vous pouvez potentiellement créer des liens non valides comme un lien symbolique vers un fichier ou un lien symbolique vers un fichier / répertoire inexistant.

  • Les liens symboliques peuvent être des liens absolus ou relatifs. Les liens absolus sont des liens qui spécifient chaque partie du nom de chemin tandis que les liens relatifs sont déterminés par rapport à l'endroit où les spécificateurs de liaison relative se trouvent dans un chemin spécifié.

  • Les liens symboliques absolus peuvent pointer vers des fichiers / répertoires sur un volume identique ou différent, ainsi que vers un fichier ou un répertoire distant à l'aide du chemin UNC. Cependant, les liens symboliques relatifs sont limités à un seul volume.

  • Des privilèges élevés sont requis pour créer un lien symbolique, même si, une fois créés, les privilèges élevés ne sont pas nécessaires pour supprimer le lien.

Liens durs: Un lien physique est la représentation du système de fichiers d’un fichier par lequel plusieurs chemins font référence à un seul fichier.

  • MKLINK permet de créer des liens durs (en utilisant le /H paramètre) uniquement des fichiers (pas des répertoires). Un lien physique ne peut être créé qu’un fichier dans le même volume.

  • Un fichier avec plusieurs liens durs n'est réellement supprimé que lorsque tous les liens physiques sont supprimés, c'est-à-dire que le nombre de liens atteint zéro. Donc vraiment chaque fichier que vous créez a au moins un lien dur pour lui, que vous utilisiez MKLINK ou pas.

  • Toutes les modifications apportées à ce fichier sont instantanément visibles par les applications qui y accèdent via les liens matériels qui le référencent. Toutefois, les informations relatives à la taille et à l'attribut de l'entrée d'annuaire ne sont mises à jour que pour le lien par lequel la modification a été apportée.

  • Notez que les attributs du fichier sont reflétés dans tous les liens physiques vers ce fichier et que les modifications apportées aux attributs de ce fichier se propagent à tous les liens physiques. Par exemple, si vous désactivez l'attribut en lecture seule sur un lien physique pour supprimer ce lien matériel particulier et qu'il existe plusieurs liens matériels vers le fichier réel, vous devrez redéfinir l'attribut en lecture seule sur le fichier. de l'un des liens durs restants pour ramener le fichier et tous les liens matériels restants à l'état de lecture seule.

Jonctions: Une jonction (également appelée liaison logicielle) diffère d'un lien physique en ce sens que les objets de stockage auxquels elle fait référence sont des répertoires distincts et qu'une jonction peut lier des répertoires situés sur des volumes locaux différents sur le même ordinateur. Sinon, les jonctions fonctionnent de manière identique aux liaisons matérielles. Les jonctions sont implémentées par des points d'analyse.

  • MKLINKpermet de créer une jonction (en utilisant le /J paramètre) d’un répertoire (et même de fichiers bien que cela soit probablement considéré comme un lien invalide).

  • Une jonction peut être considérée comme l’équivalent d’un lien symbolique vers un répertoire. Un lien de jonction ne peut pas être créé dans un répertoire distant mais peut être créé dans un répertoire sur un volume identique / différent.


Les références:

[1] Liens et jonctions: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365006%28v=vs.85%29.aspx

[2] Création de liens symboliques: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363878%28v=vs.85%29.aspx

[3] "jonction d'annuaire" vs "lien symbolique d'annuaire"?


36
2018-04-15 21:13





Lien dur est un autre nom pour un fichier. Si vous avez un fichier nommé A.txt et que vous avez le lien L.txt, une fois que vous avez supprimé A.txt, vous aurez toujours accès à ses données via L.txt. Ce n'est que lorsque les deux fichiers sont supprimés que le fichier a disparu.

D'autre part, vous avez un soft-link (jonction s'il s'agit d'un dossier ou d'un lien symbolique s'il s'agit d'un fichier). Dans ce cas, lorsque vous supprimez A.txt, le fichier a réellement disparu. La suppression de L.txt n’a aucun effet sur le fichier.

Les liens durs ne peuvent être utilisés que sur la même partition que le fichier d'origine et les liens logiciels peuvent être utilisés sur toutes les partitions.

P.S. Le fichier et le dossier sont principalement interchangeables pour NTFS.


8
2017-11-09 10:58



Désolé, les jonctions et les liens logiciels ne sont pas la même chose pour NTFS. :(: - Vilx-
msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx Citation: "Une jonction (également appelée un lien logiciel)" - Josip Medved
Cependant, il existe une autre distinction entre jonction (ou soft-link) et lien symbolique, mais je ne suis pas entré dans les détails ici. Pour ceux qui sont intéressés, des détails peuvent être trouvés dans la documentation de Windows à msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx et msdn.microsoft.com/en-us/library/aa363878%28VS.85%29.aspx. - Josip Medved
Depuis Windows Vista, il existe deux jonctions NTFS (qui ne peuvent être dirigées que vers des répertoires) et des liens symboliques Unix (peuvent littéralement désigner n'importe quoi). - grawity


Lien dur: ne fonctionne que pour le même volume.
Jonction: tout volume local
Symbolique: volume local ou chemin UNC

| Link Type     | Same Volume | Different Volume | UNC Path |
|---------------|-------------|------------------|----------|
| Hard link     | Yes         | No               | No       |
| Junction      | Yes         | Yes              | No       |
| Symbolic link | Yes         | Yes              | Yes      |

Chatter Bonus

Windows crée des jonctions et des liens symboliques à des fins AppCompat; pour les applications mal écrites qui pensent:

  • C: \ Users \ Tous les utilisateurs
  • C: \ Utilisateurs \ Utilisateur par défaut

sont valides.

C:\Users>dir /as

 Directory of C:\Users

04/11/2018  07:45 PM    <SYMLINKD>     All Users [C:\ProgramData]
04/11/2018  07:45 PM    <JUNCTION>     Default User [C:\Users\Default]

La même chose est vraie dans le dossier de profil de l'utilisateur, pour les applications qui s'attendent à ce que les dossiers de l'ère Windows XP existent encore aujourd'hui:

| Folder           | Type       | Target                                                           |
|------------------|------------|------------------------------------------------------------------|    | Application Data | <JUNCTION> | C:\Users\Ian\AppData\Roaming                                     |
| Cookies          | <JUNCTION> | C:\Users\Ian\AppData\Local\Microsoft\Windows\INetCookies         |
| Local Settings   | <JUNCTION> | C:\Users\Ian\AppData\Local                                       |
| My Documents     | <JUNCTION> | C:\Users\Ian\Documents                                           |
| NetHood          | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Network Shortcuts |
| PrintHood        | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Printer Shortcuts |
| Recent           | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Recent            |
| SendTo           | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\SendTo            |
| Start Menu       | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Start Menu        |
| Templates        | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Templates         |

0
2017-07-14 14:11





Pour répondre par programmation:

Lien dur: shared_ptr <>. Il en existe toujours un.

Lien souple: faiblesse_ptr <>. Valable uniquement lorsqu'un autre lien existe.


-1
2017-12-25 19:54



C'est le plus facile. :) La question portait sur les liens durs vs les jonctions. ;) - Vilx-