web-dev-qa-db-fra.com

Existe-t-il un moyen de faire en sorte que Thunar affiche la taille de fichier "récursive"?

J'utilise Thunar 1.6.3 et actuellement, lorsque je regarde un tas de dossiers, cela ressemble à ceci:

Folder 1        8,2 kB
Folder 2        4,1 kB
Folder 3        4,1 kB
Folder 4        0   kB

Je ne sais pas d'où proviennent ces numéros de "taille", mais je suis sûr qu'ils ne reflètent pas la taille réelle de tout le contenu des dossiers, car lorsque je clique avec le bouton droit de la souris et que je choisis "Propriétés", les dossiers (tous en kilo-octets seulement). en taille) ajouter jusqu'à plus de 100 Gb.

Questions

  • Pourquoi Thunar, tout comme la ligne de commande des versions 12.04 et 14.04, affiche-t-il une taille de dossier telle que 4K? Que signifie ce numéro?
  • Existe-t-il un moyen d'afficher la taille composée, c'est-à-dire la taille récursive calculée du dossier et de tout son contenu, dans le terminal, Thunar ou tout autre gestionnaire de fichiers? (NB: je ne cherche pas de solution de script Shell).
6
pzkpfw

Je devrais expliquer un peu la structure du système de fichiers Linux pour expliquer cela. La plupart des systèmes de fichiers Linux font quelque chose de similaire, mais je suppose que ext4, qui est la valeur par défaut actuelle.

Structure du système de fichiers

  • inode est le bloc de base que le système de fichiers comprend en tant qu'unité logique.
  • Un inode de répertoire contient des références à d'autres inodes.
  • Un inode de fichier contient les métadonnées, les données réelles et les références aux blocs de continuation, au cas où le fichier devrait être stocké de manière non contiguë.

Liens

  • Ext4 prend en charge deux types de liens. Dur et doux.
  • Un lien dur est une référence à inode directement. Chaque fichier a au moins un lien physique, à partir du répertoire auquel il appartient.
  • Puisqu'un répertoire est juste un inode, avec des informations sur le groupe de références d'inodes, il peut se référencer lui-même ou un parent. En d'autres termes, un dossier peut être à la fois enfant et parent dans le même dossier.

Ok, cela peut devenir déroutant. Laissez-moi expliquer. Supposons que vous avez trois dossiers, A, B, C, comme suit.

C is in B.  
B is in A.

La partie amusante est que C peut pointer sur le même inode que A, créant ce que l’on appelle parfois une boucle de référence circulaire. Si vous essayez de récurer, vous rencontrerez une boucle sans fin.

  • Les liens symboliques sont des fichiers ordinaires qui enregistrent le chemin du répertoire vers leur emplacement cible. Ils sont simplement marqués sur le système de fichiers qu'au lieu d'une ligne de texte, ils doivent être interprétés comme un lien vers un autre emplacement. Nautilus, par exemple, crée des liens symboliques lorsque vous utilisez ses options "Créer un lien"/"Lien ici".

Et alors?

Par conséquent, essayer de calculer les tailles de manière récursive a ses bizarreries. C'est une mauvaise idée d'essayer de calculer les tailles récursivement par défaut. Cependant, les boîtes de dialogue de propriétés de tous les gestionnaires de fichiers décents que je connais présentent des tailles totales calculées de manière récursive, car c’est ce à quoi un utilisateur ordinaire s’attend.

Windows n'a pas de problème?

En fait, Windows utilise un format de système de fichiers différent, appelé NTFS, qui conserve une liste de tous les fichiers et de leur taille. Donc, il peut toujours dire la taille totale facilement.

Alors pourquoi n'utilisons-nous pas NTFS?

Il ne prend pas en charge la notion d'autorisations Unix (rwx pour le propriétaire, le groupe et l'univers séparément), et cette raison unique le rend impropre à une utilisation en tant que système de fichiers Linux. Ext4 apporte beaucoup à la table que ce dérangement mineur n'a pas d'importance pour beaucoup.

Bien. Donne-moi la taille dont j'ai besoin.

Avez-vous essayé du?

Comment fonctionne du?

du représente l'utilisation du disque. Il compte en fait les blocs d’inodes, en prenant soin de ne pas les compter deux fois. Additionnez les tailles et vous avez la taille totale.

TL; DR

Utilisez du -hs <foldername> pour trouver la taille réelle du dossier sur le disque. Lisez man du pour plus d'informations.

7
Mahesh

Dans le menu principal de thunar , sélectionnez Modifier> Configurer les actions personnalisées, ajoutez une nouvelle action personnalisée avec:

  1. Base onglet: Nom quelconque [ex. Dossier (s) - Taille des fichiers], Commande du -h -c %N | grep total | zenity --text-info ou du -chs %N | zenity --text-info pour le dossier sélectionné ou/et la taille du fichier, suivie de la taille totale.
  2. Apparence Conditions : cochez toutes les cases.

J'ai trouvé cette solution sur http://crunchbang.org

4
vasilis74