Linux размер папок с сортировкой по размеру

Содержание
  1. Размеры папок и дисков в Linux. Команды df и du
  2. Свободное место на диске (df)
  3. Примечание:
  4. Опция -h
  5. Размер конкретного диска
  6. Размер папок на диске (du)
  7. Просмотр размера текущей папки
  8. Посмотреть размеры всех папок
  9. Отобразить размеры всех вложенных папок
  10. Отсортировать папки по объёму
  11. Как отсортировать файлы по размеру с помощью команды ls в Linux
  12. 1) Перечислить содержимое содержимого каталога при сортировке по размеру
  13. 2) Список содержимого каталога с сортировкой по размеру
  14. 3) Сортировка выходных данных и размеров в удобном формате для чтения (например, 1K 48M 1G)
  15. Бонусные советы
  16. 4) Список в алфавитном порядке сортировки
  17. 5) Список в обратном порядке по алфавиту
  18. 6) Список скрытого содержимого каталога в алфавитном порядке сортировки
  19. 7) Список содержимого каталога в алфавитном порядке сортировки
  20. Linux размер папок с сортировкой по размеру
  21. Использование утилиты ls в linux
  22. Использование утилиты du в linux
  23. Использование утилиты sort в linux
  24. Команда du в Linux
  25. Синтаксис и опции команды du
  26. Примеры использования du
  27. Выводы
  28. Как отсортировать вывод du -h по размеру
  29. Ответ 1
  30. Ответ 2
  31. Ответ 3
  32. Ответ 4
  33. Ответ 5
  34. Ответ 7
  35. Ответ 8
  36. Ответ 9
  37. Ответ 10
  38. Ответ 11
  39. Ответ 12
  40. Ответ 13
  41. Ответ 14
  42. Ответ 15
  43. Ответ 19
  44. Ответ 20
  45. Ответ 21
  46. Ответ 23
  47. Ответ 24

Размеры папок и дисков в Linux. Команды df и du

Свободное место на диске (df)

Для просмотра свободного и занятого места на разделах диска в Linux можно воспользоваться командой df.

Первым делом можно просто ввести команду df без каких-либо аргументов и получить занятое и свободное место на дисках. Но по умолчанию вывод команды не очень наглядный — например, размеры выводятся в КБайтах (1К-блоках).

Примечание:

df не отображает информацию о не смонтированных дисках.

Опция -h

Опция -h (или —human-readable) позволяет сделать вывод более наглядным. Размеры выводятся теперь в ГБайтах.

Размер конкретного диска

Команде df можно указать путь до точки монтирования диска, размер которого вы хотите вывести:

Размер папок на диске (du)

Для просмотра размеров папок на диске используется команда du. Если просто ввести команду без каких либо аргументов, то она рекурсивно проскандирует вашу текущую директорию и выведет размеры всех файлов в ней. Обычно для du указывают путь до папки, которую вы хотите проанализировать. Если нужно просмотреть размеры без рекурсивного обхода всех папок, то используется опция -s (—summarize). Также как и с df, добавим опцию -h (—human-readable).

Просмотр размера текущей папки

Чтобы показать объем просто одного текущего каталога (со всеми вложенными файлами + подкаталогами) подойдёт команда du с ключиком -sh.

Вот пример, как определить размер директории данного сайта:

Посмотреть размеры всех папок

Если нужно посчитать вес всех директорий плюс файлы — добавляем звёздочку:

Отобразить размеры всех вложенных папок

Чтобы проверить информацию в том числе вообще по всем папкам, вместе со вложенными — понадобится самый короткий вариант:

Внимание: если такой случайно запустить в корне на объёмном диске с большим количеством информации — лучше сразу жмите CTRL-C, т.к. во-первых, иначе придётся сильно подождать 😉 , во-вторых, десятки-сотни экранов информации будут бессмысленными. Потому эта простая команда должна использоваться лишь для, соответственно, простых случаев.

Отсортировать папки по объёму

Покажет объём в килобайтах с сортировкой — самые большие папки/файлы сверху. Если нужно в мегабайтах:

К сожалению более удобный ключик h («human» — автовыбор кило-мега-гига) в данном случае (du -sh *| sort -nr) не подойдёт, т.к. сортировка идёт по «числам» (не учитывая, что это KB/MB/GB). Для этого придётся использовать длинную команду:

Источник

Как отсортировать файлы по размеру с помощью команды ls в Linux

Если вы новый пользователь в мире Linux, команда ls является самой популярной и очень полезной командой для перечисления содержимого каталогов.

В этой статье мы объясним, как использовать параметр сортировки ls для отображения содержимого каталога по размеру.

1) Перечислить содержимое содержимого каталога при сортировке по размеру

Чтобы перечислить содержимое определенного каталога с сортировкой по размеру, мы будем использовать опции -lS с командой ls.

Чтобы указать размер файла, мы будем использовать параметр -s с командой ls.

2) Список содержимого каталога с сортировкой по размеру

Чтобы перечислить содержимое определенного каталога с сортировкой по размеру, мы будем использовать опции -lSr с командой ls.

3) Сортировка выходных данных и размеров в удобном формате для чтения (например, 1K 48M 1G)

для сортировки выходных данных и размеров в человекочитаемом формате мы будем использовать -h с командой ls.

Кроме того, мы можем выводить размеры в читаемом формате для конкретного расширения.

Читайте также:  Чем сделать бэкап линукс

Бонусные советы

4) Список в алфавитном порядке сортировки

Чтобы перечислить содержимое определенного каталога с сортировкой по алфавиту, мы будем использовать команду ls только без опции, потому что по умолчанию используется алфавитная сортировка.

Чтобы перечислить содержимое определенного каталога с подробной информацией, добавьте путь к каталогу.

5) Список в обратном порядке по алфавиту

Чтобы перечислить содержимое определенного каталога с подробными сведениями в обратном порядке сортировки по алфавиту, мы будем использовать опции -lr с командой ls.

6) Список скрытого содержимого каталога в алфавитном порядке сортировки

Чтобы отобразить скрытое содержимое определенного каталога, мы будем использовать опции -a или -all с командой ls.

7) Список содержимого каталога в алфавитном порядке сортировки

Чтобы показать содержимое определенного каталога с подробными сведениями, такими как права доступа к файлам, количество ссылок, имя владельца и владельца группы, размер файла, время последней модификации и имя файла / каталога, мы будем использовать -l с командой ls.

Источник

Linux размер папок с сортировкой по размеру

Уделим немного времени знакомству с консольными утилитами ls, du и sort в ОС Linux. Рассмотрим их использование с основными ключами и в различных комбинациях, для сортировки файлов и директорий (папок) по размеру.

Использование утилиты ls в linux

1. Вывод списка файлов и директории.

Данный вывод неинформативен поэтому лучше использовать ls вместе с ключами.

2. Вывод списока файлов и директорий, включая скрытые файлы в виде «расширеного списка».

«-l» — выводит расширеный листинг.

«-h» — выводит размер файлов в удобном для чтения формате (GB/MB/KB).

«-a» — выводит все файлы, в том числе и «скрытые».

Стоит отметить, что «ls» не может вычислять размер директорий, поэтому, для вывода размера директорий / каталогов / папок будем использовать утилиту «du».

Использование утилиты du в linux

1. Вывод списка директории c вложенными директориями.

По-умолчанию «du» выводит размер, не только каждой директории, но и всех вложенных в нее директорий /каталогов / папок.

2. Вывод списка директории без вложенных директорий.

3. Вывод списка директории c одним уровнем вложения.

«—max-depth=1» — задает уровень вложенности директорий равной 1.

«-h» — выводит размер файлов в удобном для чтения формате (GB/MB/KB).

Использование утилиты sort в linux

1. Вывод папок отсортированных по размеру.

«-n» — сортировка по числам.

«-r» — отображает в выводе самые большие числа вначале.

2. Вывод директорий / каталогов / папок отсортированных по размеру в мегабайтах.

3. Вывод директорий / каталогов / папок и файлов отсортированных по размеру.

4. Вывод директорий и файлов отсортированных по размеру и преведенный к удобному виду для восприятия размера (KB/MB/GB).

Самый сложный, но в тоже время самый информативный и красивый вывод.

5. Вывод директорий /каталогов / папок и файлов отсортированных по размеру в файл.

Данный вариант может быть полезен, например в случае очень большошо количества строк в выводе.

На этом все. Существует еще множество различных вариантов сортировки, так что предлагайте свои. Комментируем, подписываемся ну и всем пока:)

1″ :pagination=»pagination» :callback=»loadData» :options=»paginationOptions»>

Источник

Команда du в Linux

Иногда возникает необходимость посмотреть сколько места занимают файлы в определённой папке и найти самые большие файлы для того чтобы их удалить. Конечно, для решения этих задач существует множество инструментов, но самый простой из них, это утилита du. Она позволяет вывести размер всех файлов в определённой папке в байтах или в более удобном формате.

В сегодняшней статье мы разберемся что из себя представляет команда du Linux, а также как ею пользоваться для решения ваших рабочих задач.

Синтаксис и опции команды du

Синтаксис команды очень простой. Вам достаточно передать ей опции и путь к папке с которой следует работать:

$ du опции /путь/к/папке

А вот опции утилиты:

  • -a, —all — выводить размер для всех файлов, а не только для директорий, по умолчанию размер выводится только для папок;
  • -B, —block-size — указать единицы вывода размера, доступно: K,M,G,T,P,E,Z,Y для 1024 и KB, MB и так далее для 1000;
  • -c, —total — выводить в конце общий размер всех папок;
  • -d, —max-depth — максимальная глубина вложенности директорий;
  • -h, —human-readable — выводить размер в единицах измерения удобных для человека;
  • —inodes — выводить информацию об использованию inode;
  • -L, —dereference — следовать по всем символическим ссылкам;
  • -l, —count-links — учитывать размер файла несколько раз для жестких ссылок;
  • -P, —no-dereference — не следовать по символическим ссылкам, это поведение используется по умолчанию;
  • -S, —separate-dirs — не включать размер подпапок в размер папки;
  • —si — выводить размер файлов и папок в системе си, используется 1000 вместо 1024;
  • -s, —summarize — выводить только общий размер;
  • -t, —threshold — не учитывать файлы и папки с размером меньше указанного;
  • —time — отображать время последней модификации для файла или папки, вместо времени модификации можно выводить такие метки: atime, access, use, ctime;
  • -X, —exclude — исключить файлы из подсчёта;
  • -x, —one-file-system — пропускать примонтированные файловые системы;
  • —version — вывести версию утилиты.
Читайте также:  Промокоды для windows store

Здесь перечислены не все опции. Если вам надо больше, смотрите в:

Примеры использования du

Чтобы просто вывести список папок в определённом каталоге и занимаемое ими место, например, в /var выполните:

По умолчанию размер выводится в байтах. Для того чтобы размер выводился в более читабельном виде используйте опцию -h:

Или вы можете указать размер блока. Тогда точность будет немного ниже, потому что минимальная единица измерения — один блок. Например, для вывода размера папок в мегабайтах с размером блока в 1024 килобайт используйте опцию -B с параметром M:

Если надо выводить размер не только папок, но и файлов, которые там находятся используйте опцию -a:

Для того чтобы вывести только общий размер всех файлов и папок нужно применить опцию -s:

Если вы хотите вывести размер папок без вложенных в них подпапок используйте опцию -m:

Ещё можно вывести строчку с общим размером всей папки. Правда использовать эту возможность есть смысл только с опцией -S, потому что общий размер папки во всех других случаях и так отображается:

Если вам надо исключить какие-либо файлы из подсчёта, следует использовать опцию -exclude. Например, давайте исключим все лог файлы:

du -hac —exclude=»*.log»

Чтобы данные были более наглядными их желательно отсортировать. Встроенной поддержки сортировки в du linux нет, зато можно воспользоваться утилитой sort с опцией -h. Эта опция нужна чтобы сортировались единицы измерения в понятном для чтения формате:

du -h /var | sort -h

Выводы

В этой небольшой статье мы рассмотрели основные возможности команды du в Linux. Как видите, несмотря на то, что утилита очень простая, она позволяет посмотреть всё что необходимо. А какими программами вы пользуетесь для просмотра размера файлов и папок? Напишите в комментариях!

Источник

Как отсортировать вывод du -h по размеру

Мне нужно получить список вывода, который может читать человек.

Однако у du нет опции «сортировать по размеру», sort не работает с флагом, понятным человеку.

Выводит отсортированное использование диска по размеру (по убыванию):

Однако запуск его с флагом, понятным для человека, не выполняет сортировку должным образом:

Кто-нибудь знает способ сортировки du -h по размеру?

Ответ 1

Начиная с версии GNU coreutils 7.5, выпущенной в августе 2009 года, sort допускает параметр -h, который позволяет использовать числовые суффиксы, подобные тем, что выдает du -h:

Если же использовать сортировку, которая не поддерживает -h, можно установить GNU Coreutils. Например, на старой версии Mac OS X:

rew install coreutils

du -hs * | gsort -h

Из sort руководства:

-h, —human-numeric-sort compare human readable numbers (e.g., 2K 1G)

Ответ 2

Есть очень полезный инструмент под названием ncdu, который я использую для поиска и удаления этих надоедливых папок и файлов, которые занимают много места на диске. Он работает в консоли, быстрый и легкий, и имеет пакеты для всех основных дистрибутивов.

Ответ 3

Отсортируйте человекочитаемый вывод du -h с помощью другого инструмента. Например, Perl!

du -h | perl -e «sub h<%h=(K=>10,M=>20,G=>30);($n,$u)=shift=

Можно разделить на несколько строк, чтобы поместить на экране, или оставить как есть, он будет работать в любом случае.

Вывод:

Окончательный результат следующий:

Ответ 4

У меня тоже была такая проблема, и сейчас я использую другой способ:

du -scBM | sort -n

Это не даст масштабированных значений, но всегда будет отображать размер в мегабайтах. Это не идеально, но для меня это лучше, чем ничего.

Ответ 5

Насколько я могу судить, есть три варианта:

Изменить du для сортировки перед отображением.

Изменить sort для поддержки человечески понятных размеров для числовой сортировки.

Постобработка вывода из sort для изменения базового вывода на понятный человеку.

Вы также можете сделать du -k и выводить в килобайтах.

Для 3 варианта вы можете использовать следующий сценарий:

for line in sys.stdin.readlines():

if size =1024; x/=1024)<

Запуск этой программы в моем каталоге .vim дает результат:

Ответ 7

Эта версия использует awk для создания дополнительных столбцов для ключей сортировки. Она вызывает du только один раз. Вывод должен выглядеть точно так же, как в du.

Читайте также:  Windows forms как создать кнопку

Я разбил его на несколько строк, но его можно собрать и в одну.

index(«KMG», substr($1, length($1))),

substr($1, 0, length($1)-1), $0>’ |

sort -r | cut -f2,3

Пояснения:

BEGIN — создает строку для индекса, чтобы подставить 1, 2, 3 для K, M, G для группировки по единицам, если нет единицы (размер меньше 1K), то нет совпадения и возвращается ноль (идеально!).

Выводит новые поля — единицу измерения, значение (для правильной работы альфа-сорта с добавкой нуля, фиксированной длины) и исходную строку.

Проиндексировать последний символ поля размера.

Вытащить числовую часть размера.

Сортирует результаты, отбросывает лишние столбцы.

Попробуйте без команды cut, чтобы увидеть, что она делает.

Вот версия, которая выполняет сортировку внутри сценария AWK и не требует команды cut:

index(«KMG», substr($1, length($1))),

substr($1, 0, length($1)-1), $0);

for (i = c; i >= 1; i—)

Ответ 8

Вот пример, который показывает каталоги в более компактной обобщенной форме. Он обрабатывает пробелы в именах каталогов.

% du -s * | sort -rn | cut -f2- | xargs -d «\n» du -sh

7.2G VirtualBox VMs

Сортировка файлов по размеру в МБ:

du —block-size=MiB —max-depth=1 path | sort -n

Ответ 9

У меня есть простая, но полезная обертка для du на языке python под названием dutop. Обратите внимание, что мы (сопровождающие coreutils) рассматриваем возможность добавления функциональности для сортировки «человеческого» вывода напрямую.

Ответ 10

$ du -B1 | sort -nr | perl -MNumber::Bytes::Human=format_bytes -F’\t’ -lane ‘print format_bytes($F[0]).»\t».$F[1]’

Мне начинает нравиться perl. Возможно, вам придется сделать так:

Ответ 11

Этот фрагмент был заимствован у «Жан-Пьера» с http://www.unix.com/shell-programming-scripting/32555-du-h-sort.html . Можно ли верить ему?

du -k | sort -nr | awk ‘

$1 = sprintf(«%.1f %s», $1, Units[u]);

Ответ 12

Используйте флаг «-g»:

compare according to general numerical value

В моем каталоге /usr/local выводится примерно так:

Ответ 13

Нашел это в сети . похоже, работает нормально:

du -sh * | tee /tmp/duout.txt | grep G | sort -rn ; cat /tmp/duout.txt | grep M | sort -rn ; cat /tmp/duout.txt | grep K | sort -rn ; rm /tmp/duout.txt

Ответ 14

Ответ 15

Я изучил awk, придумав вчера этот пример. Это заняло некоторое время, но было очень весело, и я научился использовать awk.

Он запускает du один раз, и его вывод очень похож на du -h

2.35MB ./Work Docs

1.59MB ./Work Docs/Work

584.00KB ./scan 1.pdf

16.00KB ./Membership Transmittal Template.xlsx

Ответ 19

du -h /folder/subfolder —max-depth=1 | sort -hr

Можно добавить, | head -10, чтобы найти первые 10 или любое количество подпапок в указанном каталоге.

Ответ 20

du -sk /var/log/* | sort -rn | awk ‘‘ | xargs -ia du -hs «a»

Ответ 21

Используйте следующий сценарий bash:

# list contents of the current directory by increasing

#+size in human readable format

# for some, «-d 1» will be «—maxdepth=1»

du -k -d 1 | sort -g | awk ‘

(Поскольку это последовательный вывод, вы можете добавить | sort -n, если вам действительно нужен отсортированный результат).

Эта команда, отфильтрует любой каталог, чье (суммарное) содержимое не превышает 512 МБ, а затем отображдает размеры в гигабайтах. По умолчанию du использует размер блока 512 байт (поэтому условие awk в 220 блоков равно 512 МБ, а его делитель 221 преобразует единицы измерения в ГБ — мы могли бы использовать du -kx с $1 > 512*1024 и s/1024^2 для лучшей человекочитаемости). Внутри условия awk мы устанавливаем s в размер, чтобы можно было удалить его из строки ($0). При этом сохраняется разделитель (который сворачивается в один пробел), поэтому конечный %s представляет собой пробел, а затем имя объединенного каталога. %7s округляет размер %.2f GB (увеличивает до %8s, если у вас >10TB).

В отличие от большинства приведенных здесь решений, это правильно поддерживает каталоги с пробелами в именах (хотя все решения, включая это, будут неправильно обрабатывать имена каталогов, содержащие переносы строк).

Ответ 23

По крайней мере, с помощью обычных инструментов это будет трудно сделать из-за формата человекочитаемых чисел (обратите внимание, что sort все делает правильно, поскольку сортирует числа — 508, 64, 61, 2, 2 — он просто не может сортировать числа с плавающей запятой с дополнительным множителем).

Я бы попробовал сделать все наоборот — использовать вывод «du | sort -n -r», а затем преобразовать числа в человекочитаемый формат с помощью какого-нибудь скрипта или программы.

Ответ 24

Вы можете попробовать следующее:

for i in «du -s * | sort -n | cut -f2»

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Оцените статью