Réponses:
Utilisez la ls
commande pour les fichiers et la du
commande 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
ls
La 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' -h
option 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 ls
etman du
du
commande affiche l'utilisation du disque du fichier, qui peut être supérieure à la taille réelle du fichier. Vous pouvez utiliser du -d
pour obtenir la taille réelle ls
. Plus d'infos: unix.stackexchange.com/a/106278/155224
Il y a la du
commande.
Taille d'un répertoire et / ou d'un fichier:
$ du -sh .bashrc /tmp
--apparent-size
le commutateur de ligne de commande permet de mesurer les tailles apparentes (ce qui ls
apparaît) plutôt que l'utilisation réelle du disque.
-h
flag devrait faire ce que vous demandez: imprimer des tailles dans un format lisible par l'homme (par exemple, 1K 234M 2G)
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
--apparent-size
ensuite.
du -hs *
voir la taille de tous les fichiers et répertoires du répertoire actuel.
Utilisez ls -s
pour lister la taille du fichier, ou si vous préférez ls -sh
des 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
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.
ls -l
vous 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é
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
Il existe également un excellent ncdu
utilitaire - 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]
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
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.
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 .
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 stat
pour 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
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)
Pour obtenir la taille totale du répertoire ou la taille totale de l'utilisation des fichiers,
du -csh <directory or filename*> | grep total
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
Je suis moi-même un utilisateur d'Ubuntu 16.04 et je trouve que la ll
commande 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
Tout ce que vous avez besoin est -l
et --block-size
drapeaux
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 taillesSIZE
avant de les imprimer; par exemple,'--block-size=M'
imprime des tailles en unités de 1 048 576 octets; voir leSIZE
format ci-dessous
SIZE
est 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).
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, 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 l'utiliser ls -ls
, ce qui vous donnera une utilisation en unités de 1 Ko.
ls -ls dir
Vous du
donnera également une utilisation réelle du disque, en unités de 1 Ko, ou en franchise avec le -u
drapeau.
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
Vous pouvez utiliser ncdu
l'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>
ls
ne vous montrera pas la taille totale de tout le contenu d'un répertoire.