Comment Obtenir la Taille d’un Fichier ou d’un répertoire dans le Répertoire Linux

  • Dave McKay

    @TheGurkha

  • le 19 décembre 2019, 8:00 HAE
Fatmawati Achmad Zaenuri/

Lorsque vous utilisez Linux du commande, vous obtenir à la fois le réel de l’utilisation du disque et de la vraie taille d’un fichier ou d’un répertoire. Nous expliquerons pourquoi ces valeurs ne sont pas les mêmes.

utilisation réelle du disque et taille réelle

la taille d’un fichier et l’espace qu’il occupe sur votre disque dur sont rarement les mêmes., L’espace disque est alloué dans les blocs. Si un fichier est plus petit qu’un bloc, un bloc entier lui est toujours alloué car le système de fichiers n’a pas une unité plus petite de biens immobiliers à utiliser.

sauf si la taille d’un fichier est un multiple exact de blocs, l’espace qu’il utilise sur le disque dur doit toujours être arrondi au bloc entier suivant. Par exemple, si un fichier est plus grand que deux blocs mais plus petit que trois, il faut toujours trois blocs d’espace pour le stocker.

Annonce

Deux mesures sont utilisées par rapport à la taille du fichier., Le premier est la taille réelle du fichier, qui est le nombre d’octets de contenu qui composent le fichier. La seconde est la taille effective du fichier sur le disque dur. Il s’agit du nombre de blocs de système de fichiers nécessaires pour stocker ce fichier.

Un Exemple

prenons un exemple simple., Nous allons rediriger un seul caractère dans un fichier pour créer un fichier de petite taille:

echo "1" > geek.txt

Maintenant, nous allons utiliser le format long liste, ls, de regarder la longueur du fichier:

ls -l geek.txt

La longueur est égale à la valeur numérique qui suit la balise dave dave entrées, qui est de deux octets. Pourquoi est-ce deux octets alors que nous n’avons envoyé qu’un seul caractère au fichier? Jetons un coup d’œil à ce qui se passe dans le fichier.,

Advertisement

Nous utiliserons la commande hexdump, qui nous donnera un nombre exact d’octets et nous permettra de « voir” les caractères non imprimables sous forme de valeurs hexadécimales. Nous utiliserons également l’option -C (canonique) pour forcer la sortie à afficher les valeurs hexadécimales dans le corps de la sortie, ainsi que leurs équivalents de caractères alphanumériques:

hexdump -C geek.txt

la sortie nous montre que, à partir du décalage 00000000 dans le fichier, il y a valeur hexadécimale de 31, et une qui contient une valeur hexadécimale de 0a., La partie droite de la sortie représente ces valeurs sous forme de caractères alphanumériques, dans la mesure du possible.

la valeur hexadécimale de 31 est utilisée pour représenter le chiffre un. La valeur hexadécimale de 0A est utilisée pour représenter le caractère de saut de ligne, qui ne peut pas être affiché comme un caractère alphanumérique, il est donc affiché comme un point (.) plutôt. Le caractère de saut de Ligne est ajouté par echo . Par défaut, echodémarre une nouvelle ligne après avoir affiché le texte dont elle a besoin pour écrire dans la fenêtre du terminal.,

qui compte avec la sortie dels et est d’accord avec la longueur du fichier de deux octets.

CONNEXES: Comment faire pour Utiliser la Commande ls pour lister les Fichiers et Répertoires sous Linux

Annonce

Maintenant, nous allons utiliser la balise du commande de regarder la taille du fichier:

du geek.txt

Il dit que la taille est de quatre, mais quatre de quoi?

il y a des blocs, puis il y a des blocs

lorsquedu signale la taille des fichiers en blocs, la taille qu’il utilise dépend de plusieurs facteurs., Vous pouvez spécifier la taille de bloc qu’il doit utiliser sur la ligne de commande. Si vous ne forcez pas du à utiliser une taille de bloc particulière, il suit un ensemble de règles pour décider laquelle utiliser.

tout d’abord, il vérifie les variables d’environnement suivantes:

  • DU_BLOCK_SIZE
  • BLOCK_SIZE
  • BLOCKSIZE

Si l’une de ces variables existe, la taille du bloc est définie etdu cesse de vérifier. Si aucun n’est défini, du a par défaut une taille de bloc de 1 024 octets., À moins qu’une variable d’environnement appelée POSIXLY_CORRECT est réglé. Si tel est le cas, du a par défaut une taille de bloc de 512 octets.

publicité

alors, comment savoir laquelle est utilisée? Vous pouvez vérifier chaque variable d’environnement pour le résoudre, mais il existe un moyen plus rapide. Comparons les résultats à la taille de bloc que le système de fichiers utilise à la place.

pour découvrir la taille de bloc utilisée par le système de fichiers, nous utiliserons le programmetune2fs., Nous allons ensuite utiliser l’option-l (liste superbloc), canaliser la sortie viagrep, puis imprimer les lignes contenant le mot « bloc.”

dans cet exemple, nous examinerons le système de fichiers sur la première partition du premier disque dur, sda1, et nous devrons utiliser sudo:

sudo tune2fs -l /dev/sda1 | grep Block

La Taille du bloc du système de fichiers est de 4 096 octets. Si nous divisons cela par le résultat obtenu à partir de du (four), la taille de bloc par défaut de du est de 1 024 octets., Nous savons maintenant plusieurs choses importantes.

publicité

tout d’abord, nous savons que la plus petite quantité de biens immobiliers du système de fichiers pouvant être consacrés au stockage d’un fichier est de 4 096 octets. Cela signifie que même notre petit fichier de deux octets occupe 4 Ko d’espace sur le disque dur.

la deuxième chose à garder à l’esprit est les applications dédiées aux rapports sur les statistiques du disque dur et du système de fichiers, telles quedu,ls, ettune2fs, peuvent avoir différentes notions de ce que « bloc” signifie., L’applicationtune2fs signale la taille réelle des blocs du système de fichiers, tandis quels Etdu peuvent être configurés ou forcés d’utiliser d’autres tailles de blocs. Ces tailles de blocs ne sont pas destinées à se rapporter à la taille de bloc du système de fichiers; ce ne sont que des « morceaux” que ces commandes utilisent dans leur sortie.

enfin, en plus d’utiliser différentes tailles de blocs, les réponses dedu Ettune2fs ont la même signification., Le résultattune2fs était un bloc de 4 096 octets et le résultatdu était quatre blocs de 1 024 octets.

en utilisant du

Sans paramètres ni options de ligne de commande,du répertorie l’espace disque total utilisé par le répertoire courant et tous les sous-répertoires.

prenons un exemple:

du
publicité

la taille est indiquée dans la taille de bloc par défaut de 1 024 octets par bloc. L’arborescence entière du sous-répertoire est parcourue.,

en utilisant du sur un répertoire différent

Si vous voulez du pour signaler un répertoire différent de celui actuel, vous pouvez passer le chemin d’accès au répertoire sur la ligne de commande:

du ~/.cach/evolution/

en utilisant du sur un fichier spécifique394bec0bd9″> pour signaler un fichier spécifique, passez le chemin d’accès à ce fichier sur la ligne de commande., Vous pouvez également passer une coque modèle à un sélectionner un groupe de fichiers, tels que les *.txt:

du ~/.bash_aliases

Rapports sur les Fichiers dans les Répertoires

Pour du rapport sur les fichiers dans le répertoire courant et de ses sous répertoires utiliser la balise -a (tous les fichiers) option:

du -a
Annonce

Pour chaque répertoire, la taille de chaque fichier est signalé, ainsi qu’un total pour chaque répertoire.,

limitation de la profondeur de L’arborescence des répertoires

Vous pouvez indiquer àdu de lister l’arborescence des répertoires à une certaine profondeur. Pour ce faire, utilisez l’option-d (profondeur maximale) et fournissez une valeur de profondeur en tant que paramètre. Notez que tous les sous-répertoires sont analysés et utilisés pour calculer les totaux rapportés, mais ils ne sont pas tous répertoriés. Pour définir une profondeur de répertoire maximale d’un niveau, Utilisez cette commande:

du -d 1

la sortie répertorie la taille totale de ce sous-répertoire dans le répertoire courant et fournit également un total pour chacun d’eux.,

Pour lister les répertoires un niveau plus profond, utilisez cette commande:

du -d 2

Réglage de la Taille de Bloc

Vous pouvez utiliser la balise block option pour définir une taille de bloc de du pour l’opération en cours.,d dans la taille de bloc la plus appropriée en fonction de l’espace disque utilisé par les répertoires et les fichiers, utilisez l’option -h (lisible par l’homme):

du -h

pour voir la taille apparente du fichier plutôt que la quantité d’espace disque utilisé pour stocker le>option:

du --apparent-size
publicité

Vous pouvez combiner cela avec l’option -a(all) pour voir la taille apparente de chaque fichier:

du --apparent-size -a

chaque fichier est répertorié, avec sa taille apparente.,

Afficher uniquement les totaux

Si vous souhaitez quedu ne signale que le total du répertoire, utilisez l’option-s (résumer)., Vous pouvez également combiner cela avec d’autres options, telles que l’option -h (lisible par l’homme):

du -h -s

ici, nous l’utiliserons avec l’option --apparent-size:

du --apparent-size -s

affichage des temps de modification

pour voir l’heure et la date de création ou de dernière modification, utilisez l’option --time:

du --time -d 2

résultats étranges?,

Si vous voyez des résultats étranges dedu , en particulier lorsque vous croisez des tailles à la sortie d’autres commandes, c’est généralement dû aux différentes tailles de blocs auxquelles différentes commandes peuvent être définies ou à celles par défaut. Cela pourrait également être dû aux différences entre la taille réelle des fichiers et l’espace disque requis pour les stocker.

Si vous devez faire correspondre la sortie d’autres commandes, expérimentez avec l’option--block dansdu.,

Dave McKay
Dave McKay a utilisé pour la première fois des ordinateurs lorsque la bande de papier perforé était en vogue, et il a depuis programmé. Après plus de 30 ans dans l’industrie informatique, il est maintenant journaliste technologique à temps plein. Au cours de sa carrière, il a travaillé en tant que programmeur indépendant, responsable d’une équipe internationale de développement de logiciels, chef de projet de services informatiques et, plus récemment, en tant que délégué à la Protection des données. Dave est un évangéliste Linux et un défenseur de l’open source.Lire l’Intégrale « 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *