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?
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
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.
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.
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.
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.
Ubuntu:
$ Sudo apt-get install ncdu
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
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.
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
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)
Vous pouvez utiliser la commande ci-dessous pour obtenir une liste de fichiers dans un format facilement lisible par l'homme.
ls -lrtsh
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
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
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
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 .
vous pouvez utiliser ls -sh dans linux, vous pouvez également trier.
Pour obtenir la taille totale du répertoire ou la taille totale de l'utilisation du fichier,
du -csh <directory or filename*> | grep total
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
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.