GNU/Linux >> Tutoriels Linux >  >> Linux

Comment obtenir la taille physique d'un fichier sous Linux ?

ls -l vous donnera la taille apparente du fichier, qui est le nombre d'octets qu'un programme lira s'il lit le fichier du début à la fin. du vous donnerait la taille du fichier "sur disque".

Par défaut, du vous donne la taille du fichier en nombre de blocs de disque, mais vous pouvez utiliser -h pour obtenir une unité lisible par l'homme à la place. Voir aussi le manuel pour du sur votre système.

Notez qu'avec le du de GNU coreutil (ce qui est probablement ce que vous avez sous Linux), -b pour obtenir des octets implique le --apparent-size option. Ce n'est pas ce que vous voulez utiliser pour obtenir le nombre d'octets réellement utilisés sur le disque. Utilisez plutôt --block-size=1 ou -B 1 .

Avec GNU ls , vous pouvez aussi faire ls -s --block-size=1 sur le dossier. Cela donnera le même numéro que du -B 1 pour le fichier.

Exemple :

$ ls -l file
-rw-r--r--  1 myself wheel  536870912 Apr  8 11:44 file

$ ls -lh file
-rw-r--r--  1 myself wheel   512M Apr  8 11:44 file

$ du -h file
24K    file

$ du -B 1 file
24576   file

$ ls -s --block-size=1 file
24576 file

Cela signifie qu'il s'agit d'un fichier de 512 Mo qui occupe environ 24 Ko sur le disque. C'est un épars fichier (principalement des zéros qui ne sont pas réellement écrits sur le disque mais représentés comme des "trous" logiques dans le fichier). Les fichiers épars sont courants lorsque vous travaillez avec des fichiers volumineux pré-alloués, par ex. images de disque pour les machines virtuelles ou les fichiers d'échange, etc. La création d'un fichier fragmenté est rapide, tandis que le remplir avec des zéros est lent (et inutile).

Voir aussi le manuel du fallocate sur votre système Linux.


J'obtiens la taille du fichier en octets comme ceci :

actualsize=$(du -b "${file}" | cut -f 1)

Linux
  1. Comment utiliser la commande Tar sous Linux

  2. Linux - Comment faire en sorte que Sar s'affiche pour la veille ?

  3. Comment augmenter la taille d'échange sur Ubuntu Linux

  4. Comment obtenir la taille de tar.gz dans le fichier (Mo) en python

  5. Comment obtenir le chemin d'accès au fichier actuel (pwd) sous Linux à partir de C ?

Comment obtenir la taille d'un répertoire sous Linux

Comment ajouter du texte au début du fichier sous Linux

Comment obtenir le nom de fichier à partir du chemin complet sous Linux

Comment trouver la taille totale d'un répertoire sous Linux

Comment utiliser la commande Gzip sous Linux ?

Comment obtenir la taille d'un fichier/dossier avec SSH sous Linux ?