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

341

Comment puis-je voir la taille des fichiers et des répertoires sous Linux? Si vous l'utilisez df -m, il indique la taille de tous les répertoires au niveau supérieur, mais pour les répertoires et les fichiers à l'intérieur du répertoire, comment puis-je vérifier la taille?

Advait
la source

Réponses:

533

Utilisez la lscommande pour les fichiers et la ducommande pour les répertoires.

Vérification des tailles de fichier

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

lsLa commande ne répertorie 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

Y compris l' -hoption dans l' une des commandes ci - dessus (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 lsetman du

mk ..
la source
7
lsne vous montrera pas la taille totale de tout le contenu d'un répertoire.
Maxim Egorushkin
3
@MaximYegorushkin Merci. Corrigée.
mk ..
2
comment voir la taille en octets (Mega, Giga, ...)?
Francisco Corrales Morales du
7
@FranciscoCorralesMorales ls -lh vous montrera la taille en ko Mo Go etc.
mk ..
4
notez que la ducommande affiche l'utilisation du disque du fichier, qui peut être supérieure à la taille réelle du fichier. Vous pouvez utiliser du -dpour obtenir la taille réelle ls. Plus d'infos: unix.stackexchange.com/a/106278/155224
Lucas Alonso
148

Il y a la ducommande.

Taille d'un répertoire et / ou d'un fichier:

$ du -sh .bashrc /tmp

--apparent-sizele commutateur de ligne de commande permet de mesurer les tailles apparentes (ce qui lsapparaît) plutôt que l'utilisation réelle du disque.

Maxim Egorushkin
la source
1
comment voir la taille en octets (Kilo, Mega, Giga, ...)?
Francisco Corrales Morales du
8
@FranciscoCorralesMorales -hflag devrait faire ce que vous demandez: imprimer des tailles dans un format lisible par l'homme (par exemple, 1K 234M 2G)
Maxim Egorushkin
3
Je ne pense pas que ce soit juste. Qu'est du- ce qui résume l'utilisation du disque de l'ensemble de FICHIERS , c'est-à-dire que si un fichier est très petit (c.-à-d. 2140 octets), la sortie de "du" est (dans mon cas) 4 Ko car c'est la taille du cluster
mfloris
@mfloris Utilisez --apparent-sizeensuite.
Maxim Egorushkin
3
J'aime du -hs *voir la taille de tous les fichiers et répertoires du répertoire actuel.
Jordan Stewart
83

Utilisez ls -spour lister la taille du fichier, ou si vous préférez ls -shdes tailles lisibles par l'homme.

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

Thor
la source
8
Une astuce est à utiliser; 'du -sh *' pour lister toutes les tailles de répertoire. :)
Entalpi
36

Vous pouvez utiliser:

ls -lh

En utilisant cette commande, vous verrez l'espace apparent du répertoire et l'espace réel des fichiers et en détail les noms des fichiers affichés, en plus de la taille et de la date de création de chacun.

Yenier Torres
la source
ls -lvous donnera la taille du fichier, y compris les métadonnées? car il semble être légèrement plus grand de 4 Ko pour l'un des fichiers avec lesquels j'ai essayé
Jun711
22

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
Ravichandra
la source
Comment obtenir les deux champs en sortie?
surbhiGoel
17

Il existe également un excellent ncduutilitaire - 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]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 mis en surbrillance avec d, quitter avec CTRL+c

avtomaton
la source
16

ls -l --block-size = M vous donnera une longue liste de format (nécessaire pour voir réellement la taille du fichier) et arrondit les tailles de fichier jusqu'au Mio le plus proche.

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

Si vous ne voulez pas que le suffixe M soit attaché à la taille du fichier, vous pouvez utiliser quelque chose comme --block-size = 1M. Merci Stéphane Chazelas de l'avoir suggéré.

Ceci est décrit dans la page de manuel de ls; man ls et recherchez SIZE. Il permet également des unités autres que MB / MiB, et d'après l'apparence (je n'ai pas essayé) des tailles de blocs arbitraires également (vous pouvez donc voir la taille du fichier comme un nombre de blocs de 412 octets, si vous voulez à).

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

Adi
la source
13

Accédez au 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 .
Claudio Guirunas
la source
9

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

$ date | tee /tmp/foo
Wed Mar 13 05:36:31 UTC 2019

$ stat -c %s /tmp/foo
29

$ ls -l /tmp/foo
-rw-r--r--  1 bruno  wheel  29 Mar 13 05:36 /tmp/foo

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

L' équivalent OSX / BSD est:

$ date | tee /tmp/foo
Wed Mar 13 00:54:16 EDT 2019

$ stat -f %z /tmp/foo
29

$ ls -l /tmp/foo
-rw-r--r--  1 bruno  wheel  29 Mar 13 00:54 /tmp/foo
Bruno Bronosky
la source
8

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

ls -lrtsh

Amit
la source
7

Je fais tout le temps ce qui suit:

$ 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)
Fokwa Best
la source
5

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

du -csh <directory or filename*> | grep total
suhail ahamed F
la source
5

Utilisez la commande ls avec l'argument -h: [root @ hots19 etc] # ls -lh
h: pour une lecture humaine.

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
mkebri
la source
4

Je suis moi-même un utilisateur d'Ubuntu 16.04 et je trouve que la llcommande 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.

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 grand avantage pour moi est qu'il est rapide et vraiment intuitif à utiliser.

MISE À JOUR: ce que je ne savais pas, c'est que sur Ubuntu, c'est un alias préconfiguré. Vous pouvez facilement le définir 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
Matteus
la source
3

du -sh [nom_fichier]

fonctionne parfaitement pour obtenir la taille d'un fichier particulier.

Eyshika
la source
3

Tout ce que vous avez besoin est -let --block-sizedrapeaux

Taille de tous les fichiers et répertoires sous le répertoire de travail (en Mo)

ls -l --block-size=M

Taille de tous les fichiers et répertoires sous le répertoire de travail (en Go)

ls -l --block-size=G

Taille d'un fichier ou répertoire spécifique

ls -l --block-size=M my_file.txt
ls -l --block-size=M my_dir/

ls --help

-l utiliser un format de liste longue

--block-size=SIZE: redimensionner les tailles SIZEavant de les imprimer; par exemple, '--block-size=M'imprime des tailles en unités de 1 048 576 octets; voir le SIZEformat ci-dessous

SIZEest un entier et une unité facultative (exemple: 10M est 10 * 1024 * 1024). Les unités sont K, M, G, T, P, E, Z, Y (puissances de 1024) ou KB, MB, ... (puissances de 1000).


Giorgos Myrianthous
la source
2

Vous devez faire la différence entre la taille du fichier et l'utilisation du disque . La principale différence entre les deux vient 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, les fichiers utiliseront donc un espace disque multiple de 4 Ko, quelle que soit leur taille.

Si vous utilisez la commande, statvous 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 l'utiliser ls -ls, ce qui vous donnera une utilisation en unités de 1 Ko.

ls -ls dir

Vous dudonnera également une utilisation réelle du disque, en unités de 1 Ko, ou en franchise avec le -udrapeau.

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 clairsemés (des fichiers avec des trous ) qui compliquent encore la situation.

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

nachoparker
la source
1

vous pouvez utiliser ls -sh sous linux vous pouvez aussi trier vous devez aller dans le répertoire où vous voulez vérifier la taille des fichiers

Prem S
la source
1

aller dans un répertoire spécifique puis exécuter 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
sachin_ur
la source
0

Vous pouvez utiliser ncdul'analyseur d'utilisation du disque ici. Il affiche la taille des fichiers et répertoires dans une interface ncurses. Vous pouvez naviguer vers chaque répertoire et voir les tailles de fichiers à partir de la même interface.

À installer

$ sudo apt-get install ncdu

Analyser

$ ncdu <directory>

entrez la description de l'image ici

sumedhe
la source