web-dev-qa-db-fra.com

Comment voir la taille des fichiers et des répertoires sous Linux?

Comment voir la taille des fichiers et des répertoires sous Linux? Si vous utilisez df -m, il affiche la taille de tout le répertoire au niveau supérieur, mais pour les répertoires et les fichiers qu'il contient, comment vérifier la taille?

183
Advait

C'est simple. Utilisez la commande ls pour les fichiers et la commande du pour les répertoires.

Vérification de la taille des fichiers

ls -l filename /* Size of the file*/
ls -l *        /* Size of All the files in the current directory */
ls -al *       /* Size of All the files including hidden files in the current directory */
ls -al dir/    /* Size of All the files including hidden files in the 'dir' directory */

La commande ls ne listera pas la taille réelle des répertoires ( pourquoi? ). Par conséquent, nous utilisons du à cette fin.

Vérification des tailles de répertoire

du -sh directory_name    /* Gives you the summarized(-s) size of the directory in human readable(-h) format*/
du -bsh *                /* Gives you the apparent(-b) summarized(-s) size of all the files and directories in the current directory in human readable(-h) format*/

Inclure l'option -h dans l'une des commandes ci-dessus (pour Ex: ls -lh * ou du -sh) vous donnera la taille au format lisible par l'homme (kb, mb, gb, ...)

Pour plus d'informations, voir man ls et man du

335
mk..

Il y a la commande du

Taille d'un répertoire:

$ du -sh /tmp

Taille d'un fichier:

$ du -h /tmp/xyz

Le commutateur de ligne de commande --apparent-size permet de mesurer les tailles apparentes (ce que ls indique) plutôt que l'utilisation réelle du disque.

114
Maxim Egorushkin

Utilisez ls -s pour répertorier la taille du fichier ou, si vous préférez, ls -sh pour les tailles lisibles par l'homme.

Pour les répertoires, utilisez du et, encore, du -h pour les tailles lisibles par l'homme.

51
Thor

Vous pouvez utiliser:

ls -lh

À l'aide de cette commande, vous voyez l'espace apparent du répertoire et l'espace réel des fichiers, ainsi que les noms des fichiers affichés, ainsi que la taille et la date de création de chacun.

20
Yenier Torres

Il existe également un excellent utilitaire ncdu - il peut afficher la taille du répertoire avec des informations détaillées sur les sous-dossiers et les fichiers.

Installation

Ubuntu:

$ Sudo apt-get install ncdu

Usage

Tapez simplement ncdu [path] dans la ligne de commande. Après quelques secondes pour analyser le chemin, vous verrez quelque chose comme ceci:

$ ncdu 1.11 ~ Use the arrow keys to navigate, press ? for help
--- / ---------------------------------------------------------
.  96,1 GiB [##########] /home
.  17,7 GiB [#         ] /usr
.   4,5 GiB [          ] /var
    1,1 GiB [          ] /lib
  732,1 MiB [          ] /opt
. 275,6 MiB [          ] /boot
  198,0 MiB [          ] /storage
. 153,5 MiB [          ] /run
.  16,6 MiB [          ] /etc
   13,5 MiB [          ] /bin
   11,3 MiB [          ] /sbin
.   8,8 MiB [          ] /tmp
.   2,2 MiB [          ] /dev
!  16,0 KiB [          ] /lost+found
    8,0 KiB [          ] /media
    8,0 KiB [          ] /snap
    4,0 KiB [          ] /lib64
e   4,0 KiB [          ] /srv
!   4,0 KiB [          ] /root
e   4,0 KiB [          ] /mnt
e   4,0 KiB [          ] /cdrom
.   0,0   B [          ] /proc
.   0,0   B [          ] /sys
@   0,0   B [          ]  initrd.img.old
@   0,0   B [          ]  initrd.img
@   0,0   B [          ]  vmlinuz.old
@   0,0   B [          ]  vmlinuz

Supprimer l'élément actuellement en surbrillance avec d, sortir avec CTRL + c

13
avtomaton

ls -l --block-size = M vous fournira une longue liste de formats (nécessaire pour voir réellement la taille du fichier) et arrondira la taille des fichiers jusqu'au MiB le plus proche.

Si vous voulez des Mo (10 ^ 6 octets) plutôt que des unités MiB (2 ^ 20 octets), utilisez plutôt --block-size = MB.

Si vous ne voulez pas que le suffixe M soit associé à la taille du fichier, vous pouvez utiliser quelque chose comme --block-size = 1M. Merci Stéphane Chazelas pour cette suggestion.

Ceci est décrit dans la page de manuel de ls; man ls et recherchez TAILLE. Il permet également des unités autres que MB/MiB, et à première vue (je n'ai pas essayé cela), des tailles de blocs arbitraires également (vous pouvez donc voir la taille du fichier sous forme de nombre de blocs de 412 octets, si vous le souhaitez). à).

Notez que le paramètre --block-size est une extension GNU en plus des ls du groupe ouvert. Il est donc possible que cela ne fonctionne pas si vous n'avez pas de domaine utilisateur GNU (comme la plupart des installations Linux). . Le ls de GNU coreutils 8.5 prend en charge --block-size comme décrit ci-dessus. 

11
Adi

Taille du fichier en Mo

ls -l --b=M  filename | cut -d " " -f5

Taille du fichier en Go

ls -l --b=G  filename | cut -d " " -f5
9
Ravichandra

Je fais tout le temps:

$ du -sh backup-lr-May-02-2017-1493723588.tar.gz

NB: 

-s, --summarize
            display only a total for each argument
-h, --human-readable
            print sizes in human readable format (e.g., 1K 234M 2G)
5
Fokwa Best

Vous pouvez utiliser la commande ci-dessous pour obtenir une liste de fichiers dans un format facilement lisible par l'homme.

ls -lrtsh

5
Amit

Vous devez différencier taille du fichier et utilisation du disque. La principale différence entre les deux provient du fait que les fichiers sont "coupés en morceaux" et stockés dans des blocs.

La taille de bloc moderne est de 4 Ko. Par conséquent, les fichiers utiliseront un espace disque multiple de 4 Ko, quelle que soit leur taille.

Si vous utilisez la commande stat, vous pouvez voir les deux figures côte à côte. 

stat file.c

Si vous voulez une vue plus compacte pour un répertoire, vous pouvez utiliser ls -ls, ce qui vous donnera une utilisation en unités de 1 Ko.

ls -ls dir

De plus, du vous donnera une utilisation réelle du disque, en unités de 1 Ko/ou dutree avec le drapeau -u.

Exemple: utilisation d'un fichier de 1 octet

$ echo "" > file.c

$ ls -l file.c
-rw-r--r-- 1 nacho nacho 1 Apr 30 20:42 file.c

$ ls -ls file.c
4 -rw-r--r-- 1 nacho nacho 1 Apr 30 20:42 file.c

$ du file.c
4 file.c

$ dutree file.c
[ file.c 1 B ]

$ dutree -u file.c
[ file.c 4.00 KiB ]

$ stat file.c
 File: file.c
 Size: 1 Blocks: 8 IO Block: 4096 regular file
Device: 2fh/47d Inode: 2185244 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ nacho) Gid: ( 1000/ nacho)
Access: 2018-04-30 20:41:58.002124411 +0200
Modify: 2018-04-30 20:42:24.835458383 +0200
Change: 2018-04-30 20:42:24.835458383 +0200
 Birth: -

De plus, dans les systèmes de fichiers modernes, nous pouvons avoir des instantanés, des fichiers fragmentés (fichiers contenant trous) qui compliquent davantage la situation.

Vous pouvez voir plus de détails dans cet article: comprendre la taille du fichier sous Linux

2
nachoparker

Je suis moi-même un utilisateur d'Ubuntu 16.04 et je trouve que la commande ll est de loin le moyen le plus simple de voir le contenu d'un répertoire. J'ai remarqué que toutes les distributions Linux ne prennent pas en charge cette commande, mais il existe probablement une solution de contournement/installation pour chaque distribution existante.

Exemple:

user@user-XPS-15-9560:/$ ll
total 188
drwxr-xr-x  27 root root  4096 Jan 26 09:13 ./
drwxr-xr-x  27 root root  4096 Jan 26 09:13 ../
drwxr-xr-x   2 root root  4096 Jan 22 15:13 bin/
drwxr-xr-x   4 root root 12288 Jan 29 11:35 boot/
drwxr-xr-x   2 root root  4096 Sep  3 18:14 cdrom/
drwxr-xr-x  20 root root  4440 Feb  5 08:43 dev/
drwxr-xr-x 153 root root 12288 Feb  2 15:17 etc/
drwxr-xr-x   4 root root  4096 Sep  3 18:15 home/
...

Le plus gros avantage pour moi est que son utilisation est rapide et très intuitive. 

UPDATE: Ce que je ne savais pas, c'est que sur Ubuntu, c'est un alias préconfiguré. Vous pouvez facilement le configurer vous-même en exécutant alias ll="ls -la" sur la ligne de commande ou en ajoutant cette entrée dans votre fichier de configuration .bashrc:

Sudo nano ~/.bashrc
...add line described above and save file by pressing Ctrl+X and Y...
source ~/.bashrc
2
Matteus

Utilisez ls command avec l'argument -h: [root @ hots19 etc] # ls -lh
h: lisible par l'homme.

Exemple: 
    [root@CIEYY1Z3 etc]# ls -lh
    total 1.4M
    -rw-r--r--.  1 root   root      44M Sep 15  2015 adjtime
    -rw-r--r--.  1 root   root     1.5K Jun  7  2013 aliases
    -rw-r--r--   1 root   root      12K Nov 25  2015 aliases.db
    drwxr-xr-x.  2 root   root     4.0K Jan 11  2018 alternatives
    -rw-------.  1 root   root      541 Jul  8  2014 anacrontab
    -rw-r--r--.  1 root   root      55M Sep 16  2014 asound.conf
    -rw-r--r--.  1 root   root       1G Oct  6  2014 at.deny
1
mkebri

Allez dans le répertoire choisi et exécutez:

$ du -d 1 -h

où:

-d 1 is the depth of the directories

-h is the human-readable option

Vous verrez comme ça:

0   ./proc
8.5M    ./run
0   ./sys
56M ./etc
12G ./root
33G ./var
23M ./tmp
3.2G    ./usr
154M    ./boot
26G ./home
0   ./media
0   ./mnt
421M    ./opt
0   ./srv
2.6G    ./backups
80G .
1
Claudio Guirunas

vous pouvez utiliser ls -sh dans linux, vous pouvez également trier.

1
Prem S

Pour obtenir la taille totale du répertoire ou la taille totale de l'utilisation du fichier,

du -csh <directory or filename*> | grep total
1
suhail ahamed F

allez dans répertoire spécifique puis exécutez la commande ci-dessous 

# du -sh * 

4.0K    1
4.0K    anadb.sh --> Shell file
4.0K    db.sh/    --> Shell file
24K     backup4/  --> Directory
8.0K    backup6/  --> Directory 
1.9G    backup.sql.gz  --> sql file
0
sachin_ur

Si vous l'utilisez dans un script, utilisez stat.

stat -c %s filename

Cela vous donnera la taille en octets. Voir man stat pour plus d'options de format de sortie.

0
Bruno Bronosky