Utilisation du disque d'un lien symbolique


1

Si je vérifie la taille du fichier d'un lien symbolique stat(), il signale une taille de fichier non nulle égale à la chaîne du chemin du lien. Mais lorsque j'utilise dule lien, il indique une taille de zéro bloc.

Y a-t-il une explication simple à cela? Est-il correct d'interpréter les liens symboliques comme ne nécessitant pas d'espace disque? Où les informations sur les liens symboliques sont-elles stockées?


Vous pourriez trouver cela utile.
Terdon

Réponses:


4

Voir https://en.wikipedia.org/wiki/Symlink#Storage_of_symbolic_links . Les systèmes modernes utilisent ce qu'on appelle des "liens symboliques rapides". Aucun bloc n'est alloué pour le lien symbolique. Au lieu de cela, la référence au lien symbolique est stockée dans l'inode lui-même, où un fichier normal stocke les emplacements des blocs qui le composent. dune regarde que le nombre de blocs alloués, et peut donc indiquer 0. statet ls -lest suffisamment intelligent pour indiquer la longueur du lien symbolique en fonction des données stockées dans l'inode.


Mais si je le fais du -B1 my_file, il est toujours nul. N'active pas -ble apparent-sizedrapeau? Peut-être que je devrais demander où les données sont sauvegardées?
marshall.ward

Cela s'est avéré beaucoup plus compliqué que je ne le pensais - j'ai modifié ma réponse.
wingedsubmariner
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.