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?

marshall.ward
la source
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.

Wingedsubmariner
la source
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