Page 1 sur 1

[Taille fichier] Grosse différence entre ls et du (résolu)

Publié : mar. 23 mars 2010, 04:08
par benjarobin
Bonjour,

Je viens de faire la mise a jour de git, paquet qui utilise l'extension xz.
J'ai voulu comparer pour le "fun" la compression entre tar.xz et tar.gz.
Donc j'extrait le tar.xz (1.8 Mo) avec la commande: tar xvJf git-1.7.0.3-1-i686.pkg.tar.xz ou avec KDE. Et au surprise lorsque je regarde la taille avec KDE celui-ci me donne 100 Mo...
Je vérifie avec un du qui me donne 5.3 Mo. Puis avec ls qui lui me donne la même taille que KDE.
En faite l'archive contient plein de fichiers faisant 0 octect, fichiers étant une simple copie d'un autre fichier. Ceci est tout a fait normale l'exécutable sait quoi lancer avec le nom de la commande.
Mais pourquoi donc ce n'est pas des liend symboliqued et comment c'est possible de faire ceci ? Est ce normal ? Que contient réellement mon disque dur...

Merci

Re: [Taille fichier] Grosse différence entre ls et du (début)

Publié : mar. 23 mars 2010, 08:27
par mimas
Les fichiers ont deux poids, un visible (par exemple celui que l'on voit avec un gestionnaire de fichiers), un moins visible (le nombre de blocs disques qu'ils prennent).

Un fichier affichant 0 octet prend un bloc disque, soit en général 4 Ko. Fais le calcul puisque tu as plein de fichiers de 0 octets. :)

Re: [Taille fichier] Grosse différence entre ls et du (début)

Publié : mar. 23 mars 2010, 11:57
par gyo
Sinon, la comparaison avec un tar.gz ? :)

Re: [Taille fichier] Grosse différence entre ls et du (début)

Publié : mar. 23 mars 2010, 13:46
par benjarobin
Je n'ai donc pas fait la comparaison :D (Trop occuper a comprendre le probleme)
Alors les fichiers sont dans /usr/lib/git-core/ Les fichiers qui font 0 octet dans l'archive font 950 Ko avec ls !!! (Donc rien a voir avec les bloc sur le disque dur)
Si on fait du git-var cella me donne bien 950 Ko, mais si on fait du git-* cela me donne la liste des fichiers avec leur taille mais git-var n'est pas dans cette liste (WT*) Si on fait la somme des fichiers qui sont affiche on arrive bien a 5.3 Mo...

Mais alors git-var c'est quoi un fantôme ?

Re: [Taille fichier] Grosse différence entre ls et du (début)

Publié : mar. 23 mars 2010, 14:12
par tuxce
tu peux donner la commande "ls" que tu utilises?
100mo, je l'ai pas moi (nautilus ou pcmanfm)

par contre, pour ce qui est des liens, c'est normal, avec bsdtar -vtf <archive> tu verras que les fichiers ne sont pas des liens à proprement dit, il y a un "h" au début, [EDIT: c'est une connerie]ça indique que c'est pareil qu'un des fichiers de l'archive (et donc minimise la taille de l'archive) mais lors de la décompression, c'est des vrais fichiers.[/fin de la connerie]

EDIT: En fait c'est des liens non symbolique (hard link)

Re: [Taille fichier] Grosse différence entre ls et du (début)

Publié : mar. 23 mars 2010, 14:22
par benjarobin
c'est des vrais fichiers.
Mais il y a bien 50 fichiers ou plus de taille de 950 Ko ? (je ne suis pas sur mon PC la) Pourrait tu me donner ton ls de /usr/lib/git-core/ avec la même commande que moi: /usr/bin/ls -l
Et tant que l'on y est que donne un /usr/bin/du -sh /usr/lib/git-core/*
mais lors de la décompression, c'est des vrais fichiers.
Mais alors pourquoi ne pas créer des liens symboliques...

Re: [Taille fichier] Grosse différence entre ls et du (début)

Publié : mar. 23 mars 2010, 15:06
par tuxce
bon après une petite recherce, en fait, c'est bien des liens, au temps pour moi
des liens non symboliques, et kde doit s'emmêler les pinceaux et sommer des fichiers qu'il faut pas.
"du" omet les fichiers en double.

pour tester, tu peux lancer "ls -ali | sort", c'est le même inode pour pas mal d'entre eux.

Re: [Taille fichier] Grosse différence entre ls et du (début)

Publié : mar. 23 mars 2010, 16:53
par benjarobin
Je met en résolu, mais petite question comme même, comment on créer de tel fichier ? Je ne savais pas que cela exister. Et quel est la différence avec un lien symbolique.
Pourquoi ls -l donne a la première ligne pour le dossier (le .) une taille de 100 Mo ? Bug ou normal ?
Dois je faire un rapport de bug pour KDE (Sinon dolphin est vraiment devenu instable :( ) ?

Re: [Taille fichier] Grosse différence entre ls et du (résolu)

Publié : mar. 23 mars 2010, 17:24
par gyo
Les liens hard-link existent depuis la nuit des temps !
Ça se crée avec la même commande que pour créer des liens symboliques sauf que l'on ne spécifie pas l'option « -s ».
La différence c'est que le lien symbolique ne fait que référencer le nom d'un autre fichier (répertoire ou nom) alors que le hard-link pointe le même espace mémoire sur le disque que le fichier d'origine (même inode).
Si on supprime le fichier auquel on a fait référence avec ln dans le cas du hard-link, le fichier hard-link ne sera pas altéré, alors que pour le lien symbolique si le fichier pointé n'existe plus, le lien est mort.
En fait, rien ne distingue un fichier hard-link d'un autre, car ce sont tous des liens hard-link (afaik)
Pourquoi ls -l donne a la première ligne pour le dossier (le .) une taille de 100 Mo ? Bug ou normal ?
Dois je faire un rapport de bug pour KDE (Sinon dolphin est vraiment devenu instable :( ) ?
Bug ou feature, c'est à toi de juger ;)