web-dev-qa-db-fra.com

Les liens symboliques font-ils effectivement une différence d'utilisation du disque?

J'ai lu autant de sites Web que, sous Linux, liens symboliques (liens soft, liens symboliques) sont comme Pointeurs qui font référence à un autre fichier, qui peut être situé n'importe où (comme des raccourcis de Windows). Toutefois, lorsque je vérifie l'utilisation du disque d'un dossier dans lequel il existe des liens symboliques, il y a une inadéquation entre ce que mon gestionnaire de fichiers indique et quoi rapporte du. Cependant, si je tape du -L (-L, --dereference; dereference all symbolic links de la page man), la sortie de du -L Et la taille que les rapports de mon gestionnaire de fichiers sont les mêmes.

ma question est: Si j'ai un softlink à un gros fichier dans, par exemple, ma home La partition aurai-je des problèmes?

exemple:

Mon /var/tmp Dossier est maintenant simple. Créons un fichier:

$ cat /some/file.txt > file.txt
$ du -ac
164 ./file.txt
168 .
168 total

Et mon gestionnaire de fichiers (Thunar, dans ce cas) rapporte

Taille: 1 article, totalisant 163,0 kb

D'accord. Maintenant, créons un très gros fichier en /tmp et un lien symbolique pour cela:

$ cat /dir/really_big.txt > /tmp/heavy.txt
$ du -a | grep heavy.txt
408 ./heavy.txt
$ ln -s /tmp/heavy.txt heavy.txt
$ du -ac
164 ./file.txt
0   ./heavy.txt
168 .
168 total

Tout va bien pour le moment. Mais si j'ouvre mon gestionnaire de fichiers:

Taille: 2 articles, totalisant 570,3 KB

Et enfin:

$ du -acL
164 ./file.txt
408 ./heavy.txt
576 .
576 total

Si la partition dans laquelle /var/tmp est situé est 1 GiB BIG, et je crée un lien dedans à un fichier 1 GiB fichier, matrice de mon disque dur? Je sais que du va produire 168 et thunar 1 gib, mais je ne sais pas ce qui est juste.

21
astrojuanlu

Bien sûr, les liens symboliques prennent de la place, mais juste la pièce à prendre pour stocker le nom et la cible plus quelques octets pour d'autres métadonnées. L'espace pris par un lien symbolique ne dépend pas de l'espace pris par la cible (après tout, la cible n'est même pas nécessaire pour exister).

Le plain du rapporte l'espace pris par un arborescence de répertoires sur le disque. du -L signale l'espace qui serait Pris par un arborescence de répertoire si tous les liens symboliques ont été remplacés par leur cible. Le premier est généralement les informations utiles; Par exemple, c'est l'espace que vous récupéreriez si vous avez supprimé l'arbre, et c'est (environ) l'espace dont vous avez besoin pour sauvegarder l'arbre.

du sur une arborescence de répertoire indique (généralement) un peu plus que le total des tailles de fichiers. C'est dû à deux choses. Tout d'abord, du compte également des annuaires, qui prennent une petite place pour stocker des noms de fichiers et des métadonnées. Deuxièmement, du compte l'espace disque pris par un fichier, qui peut être différent de la taille du fichier: L'effet le plus courant est que les fichiers occupent un nombre entier de blocs (4 Ko sur une installation de Linux typique). Un fichier de 1 octet peut figurer sous 4 Ko dans la sortie de la sortie; Mais la compression (telle que la forme primitive fournie par fichiers clairsemés sur à peu près à environ chaque système de fichiers UNIX) peut rendre la taille de fichier plus grande que son utilisation de disque.

Parmi les chiffres que vous donnez, il semble que Thunar rapporte le somme des tailles des fichiers dans l'arborescence de répertoire, suivant des liens symboliques. Cela le dit réellement de manière subtile - il affirme que la taille totale est de 570,3 kb, et non que l'utilisation du disque est de 570,3 Ko. Ce qui n'est pas du tout apparent à partir de l'interface utilisateur ou de la documentation, c'est que Thunar suit des liens symboliques lors de l'informatique.

Lequel est "droit" est une question subjective. du Rapporte l'utilisation du disque. Thunar rapporte la taille totale suivant des liens symboliques. Créer un lien symbolique a un impact négligeable sur l'utilisation du disque, mais par définition modifie la taille totale-suivi-links symboliques que Thunar rapporte.