Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/08/2013, à 01:18

Heydrickx

Liens physiques et déplacements

Hello smile
Je me pose une question. Je pense qu'elle est simple mais je suis curieux de savoir...

Je sais qu'on ne peut pas créer un lien physique vers un fichier d'une autre partition.
Mais si je crée deux liens physiques vers un fichier, puis que je déplace ce fichier vers une autre partition ?
Qu'arrive-t-il au lien physique qui n'a pas été concerné par le déplacement ?

J'ai fais le test, et on dirait que le fichier a été copié sur l'autre partition au lieu d'avoir été déplacé.

Par exemple :
J'ai un fichier un.test. Je créer un lien physique vers ce fichier et je l'appelle deux.test.
Ensuite, je déplace le fichier un.test vers une autre partition. Là je m'attendais à un message d'erreur.
Eh bien non! Le fichier un.test a bien été déplacé, mais le fichier deux.test existe toujours.

Quelqu'un peut-il me confirmer que le fichier a effectivement été copié sur l'autre partition et qu'il n'a pas été déplacé ?

Merci d'avance big_smile

Hors ligne

#2 Le 04/08/2013, à 06:05

pingouinux

Re : Liens physiques et déplacements

Bonjour,
C'est exact, le fichier est copié, et le lien est rompu. Chaque fichier n'a plus qu'un seul lien, et c'est encore vrai si on ramène un.test à son emplacement d'origine.

$ touch un.test

$ ln un.test deux.test

$ ls -l *.test
-rw-r----- 2 user user 0 Aug  4 05:55 deux.test
-rw-r----- 2 user user 0 Aug  4 05:55 un.test

$ mv un.test /tmp

$ ls -l *.test /tmp/*.test
-rw-r----- 1 user user 0 Aug  4 05:55 deux.test
-rw-r----- 1 user user 0 Aug  4 05:55 /tmp/un.test

$ mv /tmp/un.test .

$ ls -l *.test /tmp/*.test
ls: cannot access /tmp/*.test: No such file or directory
-rw-r----- 1 user user 0 Aug  4 05:55 deux.test
-rw-r----- 1 user user 0 Aug  4 05:55 un.test

Hors ligne

#3 Le 04/08/2013, à 12:26

tiramiseb

Re : Liens physiques et déplacements

Salut,

Petite explication détaillée pour bien comprendre : un fichier est constitué de deux choses :
- ses données, stockées sur le disque
- sa référence, dans la table des i-nœuds

Lorsque tu crées un fichier, tu stockes donc les données sur le disque et sa référence dans la table des i-nœuds.

Lorsque tu fais un lien "dur", tu crées une seconde référence vers ces données.

Lorsque tu supprimes un fichier ou que tu le déplaces sur un autre disque, tu supprimes la référence dans la table des i-nœuds, les données ne bougent pas du disque (elles seront écrasées la prochaine fois que l'espace deviendra nécessaire, vu qu'elles ne sont plus référencées).

Par conséquent, si tu supprimes un fichier qui est référencé deux fois (ou si tu le déplaces sur un autre disque, ce qui revient au même), alors tu supprimes simplement une des deux référence. La seconde référence reste en place et les données ne bougent pas. Dans la mesure où les données sont toujours référencées, elles ne seront pas écrasées.

Hors ligne

#4 Le 06/08/2013, à 04:49

Heydrickx

Re : Liens physiques et déplacements

pingouinux et tiramiseb,
merci pour vos explications. C'est super clair maintenant smile

Hors ligne