Ответы:
Используйте ls
команду для файлов и du
команду для каталогов.
Проверка размеров файлов
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
Команда не будет перечислять фактический размер каталогов ( почему? ). Поэтому мы используем du
для этого.
Проверка размеров каталога
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
В том числе и -h
вариант в любом из перечисленных выше команд (для Ex: ls -lh *
или du -sh
) даст вам размер в удобочитаемом формате ( kb
, mb
, gb
, ...)
Для получения дополнительной информации см. man ls
Иman du
du
команда показывает использование файла диском, которое может быть больше, чем фактический размер файла. Вы можете использовать, du -d
чтобы получить фактический размер, как ls
делает. Дополнительная информация: unix.stackexchange.com/a/106278/155224
Есть du
команда.
Размер каталога и / или файла:
$ du -sh .bashrc /tmp
--apparent-size
Переключатель командной строки позволяет измерять видимые размеры (что ls
показывает), а не фактическое использование диска.
-h
Флаг @FranciscoCorralesMorales должен делать то, что вы просите: размеры отпечатков в удобочитаемом формате (например, 1K 234M 2G)
du
делает диск использование Обобщить набор файлов , то есть , если файл очень малы (т.е. 2140 байт) выход «его» является (в моем случае) 4KB потому что размер кластера
--apparent-size
тогда.
du -hs *
видеть размер всех файлов и каталогов в текущем каталоге.
Ты можешь использовать:
ls -lh
Используя эту команду, вы увидите видимое пространство каталога и истинное пространство файлов, а также подробные имена отображаемых файлов, а также размер и дату создания каждого из них.
ls -l
даст вам размер файла, включая метаданные? как кажется, немного больше на 4 КБ для одного файла, с которым я пытался
Размер файла в МБ
ls -l --b=M filename | cut -d " " -f5
Размер файла в ГБ
ls -l --b=G filename | cut -d " " -f5
Существует также отличный ncdu
утилита - она может показать размер каталога с подробной информацией о подпапках и файлах.
Ubuntu:
$ sudo apt-get install ncdu
Просто введите ncdu [path]
в командной строке. Через несколько секунд для анализа пути вы увидите что-то вроде этого:
$ 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
Удалить текущий выделенный элемент с помощью d, выйти с помощью CTRL+c
ls -l --block-size = M даст вам длинный список форматов (необходимый для фактического просмотра размера файла) и округления размеров файла до ближайшего MiB.
Если вы хотите использовать единицы измерения MB (10 ^ 6 байт), а не единицы измерения MiB (2 ^ 20 байт), используйте --block-size = MB.
Если вы не хотите, чтобы суффикс M прикреплялся к размеру файла, вы можете использовать что-то вроде --block-size = 1M. Спасибо Стефану Шазеласу за предложение.
Это описано в справочной странице для ls; man ls и ищите РАЗМЕР. Он также позволяет использовать модули, отличные от MB / MiB, и, судя по всему (я не пробовал), произвольные размеры блоков (так что вы можете видеть размер файла как число 412-байтовых блоков, если хотите). к).
Обратите внимание, что параметр --block-size является расширением GNU поверх ls Open Group, поэтому он может не работать, если у вас нет пользовательского пространства GNU (что делают большинство установок Linux). Ls из GNU coreutils 8.5 поддерживает --block-size, как описано выше.
Перейдите в выбранный каталог и выполните:
$ du -d 1 -h
где:
-d 1 is the depth of the directories
-h is the human-readable option
Вы увидите вот так:
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 .
Если вы используете его в сценарии, используйте 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
Это даст вам размер в байтах. Смотрите man stat
дополнительные параметры формата вывода.
Эквивалентно OSX / BSD , это:
$ 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
Я все время делаю следующее:
$ 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)
Чтобы получить общий размер каталога или общий размер файла, используйте
du -csh <directory or filename*> | grep total
Используйте команду ls с аргументом -h: [root @ hots19 и т. Д.] # ls -lh
H: для чтения человеком.
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
Я сам пользователь Ubuntu 16.04 и обнаружил, что эта ll
команда - самый простой способ увидеть содержимое каталога. Я заметил, что не все дистрибутивы Linux поддерживают эту команду, но, вероятно, есть обходной путь / установка для каждого дистрибутива.
Пример:
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/
...
Самым большим преимуществом для меня является то, что он быстрый и интуитивно понятный в использовании.
ОБНОВЛЕНИЕ: я не знал, что в Ubuntu это предварительно настроенный псевдоним. Вы можете легко установить его самостоятельно, выполнив alias ll="ls -la"
в командной строке или добавив эту запись в ваш файл конфигурации .bashrc:
sudo nano ~/.bashrc
...add line described above and save file by pressing Ctrl+X and Y...
source ~/.bashrc
Все , что вам нужно , -l
и --block-size
флаги
Размер всех файлов и каталогов в рабочем каталоге (в мегабайтах)
ls -l --block-size=M
Размер всех файлов и каталогов в рабочем каталоге (в ГБ)
ls -l --block-size=G
Размер определенного файла или каталога
ls -l --block-size=M my_file.txt
ls -l --block-size=M my_dir/
ls --help
-l
использовать длинный формат списка
--block-size=SIZE
: масштабировать размерыSIZE
до их печати; например,'--block-size=M'
печатает размеры в единицах 1 048 576 байт; смSIZE
формат ниже
SIZE
является целым числом и необязательной единицей (пример: 10M - 10 * 1024 * 1024). Единицами измерения являются K, M, G, T, P, E, Z, Y (степени 1024) или KB, MB, ... (степени 1000).
Вы должны различать размер файла и использование диска . Основное различие между ними заключается в том, что файлы «нарезаются» и хранятся в блоках.
Современный размер блока составляет 4 КБ, поэтому файлы будут использовать дисковое пространство, кратное 4 КБ, независимо от их размера.
Если вы используете команду, stat
вы можете видеть обе фигуры рядом.
stat file.c
Если вам нужен более компактный вид для каталога, вы можете использовать его ls -ls
, что даст вам использование в единицах 1 КБ.
ls -ls dir
Также du
даст вам реальное использование диска, в единицах 1 КБ, или dutree с -u
флагом.
Пример: использование 1-байтового файла
$ 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: -
Кроме того, в современных файловых системах у нас могут быть моментальные снимки, разреженные файлы (файлы с дырами в них), которые еще больше усложняют ситуацию.
Вы можете увидеть больше деталей в этой статье: понимание размера файла в Linux
Вы можете ncdu
использовать анализатор использования диска здесь. Он отображает размер файлов и каталогов в интерфейсе ncurses. Вы можете перейти к каждому каталогу и увидеть размеры файлов из того же интерфейса.
Установить
$ sudo apt-get install ncdu
Анализировать
$ ncdu <directory>
ls
не покажет вам общий размер всего содержимого каталога.