Respostas:
Use o lscomando para arquivos e o ducomando para diretórios.
Verificando tamanhos de arquivo
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
lsO comando não listará o tamanho real dos diretórios ( por quê? ). Portanto, usamos dupara esse fim.
Verificando tamanhos de diretório
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
Incluindo -hopção em qualquer um dos comandos acima (por Ex: ls -lh *ou du -sh) lhe dará o tamanho em formato legível ( kb, mb, gb, ...)
Para mais informações, consulte man lseman du
ducomando mostra o uso do disco do arquivo, que pode ser maior que o tamanho real do arquivo. Você pode usar du -dpara obter o tamanho real como lsfaz. Mais informações: unix.stackexchange.com/a/106278/155224
Existe ducomando.
Tamanho de um diretório e / ou arquivo:
$ du -sh .bashrc /tmp
--apparent-sizeA opção de linha de comando o faz medir tamanhos aparentes (o que lsmostra) em vez do uso real do disco.
-hbandeira deve fazer o que você perguntar: tamanhos em formato legível (por exemplo, 1K 234m 2G)
dufaz é resumir o uso de disco do conjunto de arquivos , ou seja, se um arquivo é muito pequeno (por exemplo, 2140 bytes), a saída de "du" é (no meu caso) 4KB porque esse é o tamanho do cluster
--apparent-sizeentão.
du -hs *de ver o tamanho de todos os arquivos e diretórios no diretório atual.
Você pode usar:
ls -lh
Usando este comando, você verá o espaço aparente do diretório e o espaço real dos arquivos e em detalhes os nomes dos arquivos exibidos, além do tamanho e da data de criação de cada um.
ls -lvai dar u tamanho do arquivo, incluindo os metadados? como parece ser ligeiramente 4kb maior para um de arquivo que eu tentei com
Tamanho do arquivo em MB
ls -l --b=M filename | cut -d " " -f5
Tamanho do arquivo em GB
ls -l --b=G filename | cut -d " " -f5
Há também um ótimo ncduutilitário - ele pode mostrar o tamanho do diretório com informações detalhadas sobre subpastas e arquivos.
Ubuntu:
$ sudo apt-get install ncdu
Basta digitar ncdu [path]na linha de comando. Após alguns segundos para analisar o caminho, você verá algo assim:
$ 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
Exclua o elemento destacado no momento com d, saia com CTRL+c
ls -l --block-size = M fornecerá uma lista de formatos longos (necessária para realmente ver o tamanho do arquivo) e arredondará os tamanhos de arquivo até o MiB mais próximo.
Se você quiser unidades MB (10 ^ 6 bytes) em vez de unidades MiB (2 ^ 20 bytes), use --block-size = MB.
Se você não deseja que o sufixo M seja anexado ao tamanho do arquivo, use algo como --block-size = 1M. Obrigado Stéphane Chazelas por sugerir isso.
Isso é descrito na página do manual para ls; man sl e procure por SIZE. Ele também permite outras unidades além de MB / MiB e, pelo que parece (não tentei), tamanhos arbitrários de blocos (para que você possa ver o tamanho do arquivo como número de blocos de 412 bytes, se desejar). para).
Observe que o parâmetro --block-size é uma extensão GNU sobre as ls do Open Group, portanto, isso pode não funcionar se você não tiver uma área de usuário GNU (como a maioria das instalações do Linux). O sl do GNU coreutils 8.5 suporta --block-size como descrito acima.
Vá para o diretório escolhido e execute:
$ du -d 1 -h
Onde:
-d 1 is the depth of the directories
-h is the human-readable option
Você verá assim:
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 .
Se você o estiver usando em um script, use 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
Isso lhe dará tamanho em bytes. Veja man statpara mais opções de formato de saída.
$ 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
Eu faço o seguinte o tempo todo:
$ 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)
Para obter o tamanho total do diretório ou o tamanho total do arquivo usado,
du -csh <directory or filename*> | grep total
Use o comando ls com o argumento -h: [root @ hots19 etc] # ls -lh
h: para leitura humana.
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
Eu mesmo sou um usuário do Ubuntu 16.04 e acho que o llcomando é de longe a maneira mais fácil de ver o conteúdo de um diretório. Notei que nem todas as distribuições Linux suportam esse comando, mas provavelmente existe uma solução alternativa / instalação para cada distribuição disponível.
Exemplo:
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/
...
A maior vantagem para mim é que é rápido e muito intuitivo de usar.
UPDATE: o que eu não sabia era que no Ubuntu é um alias pré-configurado. Você pode configurá-lo facilmente executando alias ll="ls -la"na linha de comando ou adicionando esta entrada no seu arquivo de configuração .bashrc:
sudo nano ~/.bashrc
...add line described above and save file by pressing Ctrl+X and Y...
source ~/.bashrc
du -sh [nome_do_arquivo]
funciona perfeitamente para obter o tamanho de um arquivo específico.
Tudo que você precisa é -le --block-sizebandeiras
Tamanho de todos os arquivos e diretórios no diretório de trabalho (em MBs)
ls -l --block-size=M
Tamanho de todos os arquivos e diretórios no diretório de trabalho (em GBs)
ls -l --block-size=G
Tamanho de um arquivo ou diretório específico
ls -l --block-size=M my_file.txt
ls -l --block-size=M my_dir/
ls --help
-luse um formato de listagem longo
--block-size=SIZE: dimensione os tamanhosSIZEantes de imprimi-los; por exemplo,'--block-size=M'imprime tamanhos em unidades de 1.048.576 bytes; VejoSIZEformato abaixo
SIZEé um número inteiro e uma unidade opcional (exemplo: 10M é 10 * 1024 * 1024). As unidades são K, M, G, T, P, E, Z, Y (potências de 1024) ou KB, MB, ... (potências de 1000).
Você precisa diferenciar entre tamanho do arquivo e uso do disco . A principal diferença entre os dois vem do fato de os arquivos serem "cortados em pedaços" e armazenados em blocos.
O tamanho do bloco moderno é 4KiB; portanto, os arquivos usarão espaço em disco múltiplo de 4KiB, independentemente do tamanho deles.
Se você usar o comando, statpoderá ver as duas figuras lado a lado.
stat file.c
Se você deseja uma visão mais compacta de um diretório, pode usar ls -ls, o que lhe dará uso em unidades de 1 KB.
ls -ls dir
Também dufornecerá o uso real do disco, em unidades de 1 KB ou em conformidade com o -usinalizador.
Exemplo: uso de um arquivo de 1 byte
$ 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: -
Além disso, nos sistemas de arquivos modernos, podemos ter instantâneos, arquivos esparsos (arquivos com falhas ) que complicam ainda mais a situação.
Você pode ver mais detalhes neste artigo: entendendo o tamanho do arquivo no Linux
Você pode usar ncduo analisador de uso de disco aqui. Ele exibe o tamanho dos arquivos e diretórios em uma interface ncurses. Você pode navegar para cada diretório e ver os tamanhos dos arquivos na mesma interface.
Para instalar
$ sudo apt-get install ncdu
Analisar
$ ncdu <directory>
lsnão mostrará o tamanho total de todo o conteúdo de um diretório.