#1 Le 04/08/2013, à 01:18
- Heydrickx
Liens physiques et déplacements
Hello
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
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.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
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
Hors ligne