Вы могли также использовать команду "для подсчета количества слов" (wc
):
wc -c "$filename" | awk '{print $1}'
Проблема с wc
это, это добавит имя файла и расположит вывод с отступом. Например:
$ wc -c somefile.txt
1160 somefile.txt
Если требуется постараться не объединять в цепочку полный интерпретируемый язык или потокового редактора только для получения количества размера файла, просто перенаправьте вход из файла так, чтобы wc
никогда не видит имени файла:
wc -c < "$filename"
Эта последняя форма может использоваться с заменой команды для легкого захвата значения, которое Вы искали как переменная оболочки, как упомянуто Gilles ниже.
size="$(wc -c <"$filename")"
du -s directory_name
Или получить человекочитаемый вывод:
du -sh directory_name
-s
опция означает, что не перечислит размер для каждого подкаталога, только общий размер.
можно также использовать ls-ldh:
ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc
- l для длинного списка;-d для отображения информации о dir, не, содержание dir,-h для того, чтобы отобразить размер в huma читаемом формате.
Я всегда устанавливаю пакет "ncdu" и вижу все выходные данные всех каталогов в графическом представлении. Это потому, что мне обычно нужно знать, что занимает больше всего места на диске на моих машинах, независимо от того, многое резюмирует один каталог.
Использование: sudo ncdu /
(Вам не требуется sudo
для папок, для которых у вас есть разрешение на чтение).
Просмотр статистики использования диска по всей файловой системе займет некоторое время. Он имеет красивое графическое представление в командной строке и включает навигацию с клавиатуры с помощью клавиш со стрелками, например, углубление или повышение отсканированного пути. Вы также можете удалить элементы, нажав D .
В то время как использование отдельного пакета, такого как ncdu, может хорошо работать, то же самое сравнение многих папок может быть сделано, в некоторой степени, путем простого предоставления списка папок для увеличения их размера. Например, для сравнения каталогов верхнего уровня в вашей системе...
cd /
sudo du -sh ./*
Try
du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr
Это поможет найти большие каталоги, чтобы затем просеять их с помощью du -sh ./*
du -hd1
отобразит в удобочитаемом для человека -формате размеры всех каталогов, например.
656K ./rubberband
2.2M ./lame
652K ./pkg-config
Я попытался использовать приведенную ниже команду, так как уже был предоставлен лучший ответ
sudo find. -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
выход
sudo find. -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
679445
В исходном вопросе задавался размер, но не уточнялось, был ли это размер на диске или фактический размер данных.
Я обнаружил, что вычисление 'du' может различаться между серверами с разделами одинакового размера, использующими одну и ту же файловую систему. Если характеристики файловой системы отличаются, это имеет смысл, но в противном случае я не могу понять, почему. Ответ «ls|awk», который дал Стивен Пенни, дает более последовательный ответ,но все же дал мне противоречивые результаты с очень большими списками файлов.
Использование «найти» дало согласованные результаты для более чем 300 000 файлов, даже при сравнении одного сервера, использующего XFS, и другого, использующего EXT4. Поэтому, если вы хотите узнать общее количество байтов данных во всех файлах, я предлагаю это хороший способ получить его:
find /whatever/path -type f -printf "%s\n"|awk '{q+=$1} END {print q}'
du -ahd 1 | sort -h
будет иметь лучшую визуализацию, которая отсортировала элементы.
$ du -ahd 1 | sort -h
2.1M ./jinxing.oxps
2.1M ./jx.xps
3.5M ./instances_train2014_num10.json
5.9M ./realsense
7.8M ./html_ppt
8.5M ./pytorch-segmentation-toolbox
24M./bpycv
24M./inventory-v4
26M./gittry
65M./inventory
291M ./librealsense
466M .
du
единица по умолчанию является 512-байтовыми блоками согласно POSIX и килобайтами на Linux (если переменная средыPOSIXLY_CORRECT
установлен), или сdu -k
. – Gilles 'SO- stop being evil' 12.10.2010, 20:49du -sh bag
работавший отлично! – António Almeida 04.03.2016, 14:15