Размер файла в linux

Описание утилиты free

Linux утилита free показывает свободную и занятую память в системе. Данные получаются путем разбора /proc/meminfo.

При запуске без ключей Linux утилита free выведет на экран следующие данные:

$ free total used free shared buff/cache available Mem: 3871612 3444088 123092 4800 304432 199308 Swap: 3145724 977220 2168504

Вывод содержит данные о физической памяти Mem и файле подкачки Swap. В столбцах указаны следующие параметры:

total – всего установленной памятиused – использовано памяти (рассчитывается как total – free – buffers – cache)free – свободно памятиshared – разделенная память, используемая (в основном) tmpfsbuff/cache – память, используемая буферами ядра и кэшем страницavailable – доступно памяти для запуска новых приложений (без учета swap)По умолчанию все значения перечисленных параметров указываются в кибибайтах (2 в степени 10 = 1024).

Поиск больших файлов командой find

Простой поиск

Команда find имеет опцию -size, которая позволяет указать размер файлов для поиска.

Найдем файлы, которые занимают больше 1Gb:

  • Символ точка . после самой команды find, означает, что поиск нужно вести в текущей директории. Вместо точки вы можете указать, например, корневой раздел или путь до любой другой директории.
  • -mount означает, что в процессе поиска не нужно переходить на другие файловые системы.
  • -type f означает, что мы ищем файлы.
  • -size +1G означает, что нужно найти файлы, размер которых превышает 1Gb. Размер можно указать в различных форматах:
    • b — блоки размером 512 байт. Числом указывается количество блоков.
    • c — в байтах. Например: -size +128с
    • w — в двухбайтовых словах
    • k — в килобайтах
    • M — в мегабайтах
    • G — в гигабайтах
  • 2>/dev/null используется, чтобы не показывать ошибки (например, если нет доступа к файлу).

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

Вывод подробной информации

Добавим в вывод информацию о каждом файле и отсортируем список по размеру. Выполняем команду

Данная команда состоит из трех частей:

  • Команда find ищет файлы, которые имеют размер больше 512 мегабайт.
  • Результирующий список файлов передается команде xargs, которая, в свою очередь, запускает команду ls -lh над этим списком файлов. В результате получается таблица с файлами и информацией о файлах.

    Опция -r, команды xarg, используется для того, чтобы не запускать команду ls, если команда find вернула пустой результат (не нашла файлов). Вместо -r можно использовать длинную запись — опцию —no-run-if-emptyОпция -d ’\n’ используется, чтобы разделять список файлов только по символу новой строки (по \n). А у нас так и есть — каждый файл на новой строке. Иначе неправильно будут обработаны файлы, в названии которых содержится пробел, так как по умолчанию команда xarg в качестве разделителя использует одновременно пробел, табуляцию или символ новой строки.

    Примечание: Для BSD-систем вместо -d ’\n’ нужно использовать опцию −0, а у команды find вместо -print использовать -print0. Пример: find . -mount -type f -size +512M -print0 2>/dev/null | xargs -0 ls -lh | sort -k5,5 -h -r

  • Затем результат команды ls передается команде sort, которая выполняет сортировку списка (таблицы) по пятой колонке — 5-я колонка содержит размеры файлов.Ключ -h означает, что результат нужно вывести в удобно-читаемом виде (human-readable).Ключ -r означает, что сортировку нужно выполнять по убыванию (reverse).

Ответ 18

Другое awk решение:

du -k ./* | sort -nr | 

awk ‘

{split(«KB,MB,GB»,size,»,»);}

{x = 1;while ($1 >= 1024) 

{$1 = $1 / 1024;x = x + 1} $1 = sprintf(«%-4.2f%s», $1, size); print $0;}’

 [jaypal~/Desktop/Reference]$ du -k ./* | sort -nr | awk ‘{split(«KB,MB,GB»,size,»,»);}{x = 1;while ($1 >= 1024) {$1 = $1 / 1024;x = x + 1} $1 = sprintf(«%-4.2f%s», $1, size); print $0;}’

15.92MB ./Personal

13.82MB ./Personal/Docs

2.35MB ./Work Docs

1.59MB ./Work Docs/Work

1.46MB ./Personal/Raa

584.00KB ./scan 1.pdf

544.00KB ./Personal/Resume

44.00KB ./Membership.xlsx

16.00KB ./Membership Transmittal Template.xlsx

Ls Command in Linux (List Files and Directories)

11 Января 2020
|

Терминал

Команда является одной из основных команд, которую должен знать любой пользователь Linux. Он используется для отображения информации о файлах и каталогах в файловой системе. Утилита является частью основных утилит пакета GNU , который установлен на все дистрибутивы Linux.

Как использовать команду

Синтаксис команды следующий:

При использовании без параметров и аргументов отображает список имен всех файлов в текущем рабочем каталоге :

   Файлы перечислены в алфавитном порядке:

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

Вы также можете передать несколько каталогов и файлов в команду через пробел:

   Если пользователь, в который вы вошли, не имеет прав на чтение каталога, вы получите сообщение о том, что он не может открыть каталог:

   У команды есть несколько опций. В следующих разделах мы рассмотрим наиболее часто используемые параметры.

Вывод команды по умолчанию показывает только имена файлов и каталогов, что не очень информативно.

Параметр (нижний регистр L) позволяет печатать файлы в формате длинного списка.

Если используется формат длинного списка, команда отобразит следующую информацию о файле:

  • Тип файла
  • Файл разрешений
  • Количество жестких ссылок на файл
  • Владелец файла
  • Файловая группа
  • Размер файла
  • Дата и время
  • Имя файла

   Рассмотрим следующий пример:

   Давайте объясним наиболее важные столбцы вывода.

Первый символ показывает тип файла. В нашем примере первый символ указывает на обычный файл. Значения для других типов файлов следующие:

  • — обычный файл
  • — заблокировать специальный файл
  • — Специальный символьный файл
  • — Справочник
  • — символическая ссылка
  • — Сетевой файл
  • — FIFO
  • — Разъем

   Следующие девять символов показывают права доступа к файлу. Первые три символа предназначены для пользователя, следующие три — для группы, а последние три — для других. Вы можете изменить права доступа к файлу с помощью команды. Символ разрешения может принимать следующее значение:

  • — Разрешение на чтение файла
  • — разрешение на запись в файл
  • — Разрешение на выполнение файла
  • — установить бит
  • — липкий бит

В нашем примере означает, что пользователь может читать и записывать файл, а группа и другие пользователи могут только читать файл. Число после символов разрешения — это количество жестких ссылок на этот файл.

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

 — дата и время последнего изменения файла.

Последний столбец — это имя файла.

Показать скрытые файлы  

По умолчанию команда не показывает скрытые файлы. В Linux скрытым файлом является любой файл, начинающийся с точки ( ).

Чтобы отобразить все файлы, включая скрытые, используйте параметр:

Сортировка вывода 

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

Опция позволяет сортировать вывод по расширению, размеру, времени и версии:

  • (или ) — сортировка по алфавиту по расширению.
  • (или ) — сортировка по размеру файла.
  • (или ) — сортировка по времени модификации.
  • (или ) — Естественный вид номеров версий.

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

Например, чтобы отсортировать файлы в каталоге по времени изменения в обратном порядке сортировки, вы использовали бы:

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

Для получения дополнительной информации посетите страницу или введите свой терминал.

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

Наконец-то мы добрались к теме примеры sort Linux. Давайте сначала создадим файл с несколькими строками, на котором и будем проверять возможности утилиты.

computer mouse LAPTOP data RedHat laptop debian laptop

Также можно воспользоваться вот такой командой:

echo -e “computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop” > test.txt

Опция -e указывает команде, что нужно обрабатывать спецсимволы, а \n, если кто не знает, не что иное как спецсимвол перевода строки в Linux.

1. Сортировка

Теперь давайте выполним сортировку строк linux в нашем файле:

computer data debian laptop laptop LAPTOP mouse RedHat

Вот несколько принципов, по которым команда sort linux сортирует строки:

  • Строки с цифрами размещаются выше других строк
  • Строки, начинающиеся с букв нижнего регистра размещаются выше
  • Сортировка выполняется в соответствии алфавиту
  • Строки сначала сортируются по алфавиту, а уже вторично по другим правилам.

Отсортируем файл в обратном порядке:

RedHat mouse LAPTOP laptop laptop debian data computer

3. Сортировка по колонке

Отсортируем вывод команды ls по девятой колонке, то есть по имени файла или папки. Колонку укажем опцией -k:

drwxr-xr-x 6 user user 4096 дек 6 14:29 Android drwx—— 3 user user 4096 янв 14 22:18 Desktop drwxr-xr-x 12 user user 4096 янв 14 21:49 Documents drwx—— 5 user user 12288 янв 15 14:59 Downloads drwxr-xr-x 7 user user 4096 янв 13 11:42 Lightworks

Сортировка вывода Linux выполняется так же просто как и строк из файла.

4. Сортировка по номеру

Отсортируем вывод команды ls по второй колонке. Для сортировки по числовому значению используется опция -n:

drwx—— 5 user user 12288 янв 15 14:59 Downloads drwxr-xr-x 6 user user 4096 дек 6 14:29 Android drwxr-xr-x 7 user user 4096 июн 10 2015 Sources drwxr-xr-x 7 user user 4096 окт 31 15:08 VirtualBox drwxr-xr-x 7 user user 4096 янв 13 11:42 Lightworks drwxr-xr-x 8 user user 12288 янв 11 12:33 Pictures

5. Удаление дубликатов

Команда sort Linux позволяет не только сортировать строки, но и удалять дубликаты. Для этого есть опция -u:

computer data debian laptop LAPTOP mouse RedHat

Теперь строчка laptop не повторяется.

6. Сортировка по нескольким полям

Мы можем сортировать данные по нескольким полям. Например, отсортируем вывод ls по второму первично и вторично девятому полях:

ls -l | sort -t “,” -nk2,5 -k9

drwxr-xr-x 2 seriyyy95 seriyyy95 4096 дек 6 14:32 Links drwxr-xr-x 2 seriyyy95 seriyyy95 4096 янв 13 10:43 tmp drwx—— 3 seriyyy95 seriyyy95 4096 янв 14 22:18 Desktop drwxr-xr-x 3 seriyyy95 seriyyy95 4096 мар 28 2015 Журналы drwx—— 4 seriyyy95 seriyyy95 12288 янв 15 15:42 Загрузки

Размер файла в Linux

1. Nautilus

Чтобы посмотреть размер файла в файловом менеджере сначала найдите нужный файл и кликните по нему правой кнопкой мыши. В открывшемся меню выберите Свойства:

Программа откроет окно, в котором будут указаны свойства файла, среди них будет и размер:

2. Команда ls

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

Здесь размер отображается в пятой колонке. Чтобы увидеть размер определённого файла надо передать его имя утилите:

ls -lh ‘Снимок экрана от 2020-08-10 20-22-50.png’

Можно ещё вручную указать единицы измерения для показа размера. Для этого используйте опцию —block-size. Например, мегабайты:

ls -l —block-size=M

Вместо ls можно использовать команду ll, её вывод полностью аналогичен команде ls -l:

3. Утилита stat

Программа stat кроме метаданных позволяет выводить размер файла в байтах. Например:

stat ‘Снимок экрана от 2020-08-10 20-22-50.png’

Если нужно показать только размер, используйте опцию -с с указанием формата %s:

stat -c %s ‘Снимок экрана от 2020-08-10 20-22-50.png’

4. Утилита du

Программа du специально предназначена для просмотра размера файлов в папке. Вы можете просмотреть размер конкретного файла, например:

du -h ‘Снимок экрана от 2020-08-10 20-22-50.png’

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

А чтобы узнать размер папки в Linux используйте опцию -s. Она суммирует размеры всех объектов:

5. Утилита ncdu

Программа ncdu позволяет анализировать дисковое пространство занимаемое файлами и каталогами. Но она не поставляется вместе с системой. Для её установки выполните:

sudo apt install ncdu

Затем просто укажите в параметрах каталог, размер которого вы хотите посмотреть:

Все файлы будут отсортированы по размеру, а в самом низу будет отображен общий размер этой папки:

6. Утилита find

С помощью этой утилиты вы не можете узнать размер файла, зато можете найти файлы с определённым размером. С помощью параметра size можно указать границы размера файлов, которые надо найти. Например, больше чем 2000 килобайт, но меньше чем 2500 килобайт:

/Изображения/ -size +2000k -size -2500k

Размер можно ещё указывать в мегабайтах для этого используйте приставку M, или в байтах, тогда никакой приставки не нужно.

Команда df linux

Утилита df поставляется по умолчанию во всех дистрибутивах Linux и имеет очень простой синтаксис. Фактически вы можете просто набрать df и уже получить результат, но чтобы сделать вывод более читаемым используются дополнительные опции. Вот основной синтаксис:

$ dfопцииустройство

Устройство указывать необязательно, но можно указать раздел диска, о котором мы хотим посмотреть информацию. А теперь рассмотрим основные опции утилиты:

  • -a, –all – отобразить все файловые системы, в том числе виртуальные, псевдо и недоступные;
  • -B – изменить размер одного блока перед выводом данных, например, можно использовать BM, чтобы вывести все данные в мегабайтах;
  • -h – выводить размеры в читаемом виде, в мегабайтах или гигабайтах;
  • -H – выводить все размеры в гигабайтах;
  • -i – выводить информацию об inode;
  • -k – выводить размеры в килобайтах;
  • –output – использовать специальный формат вывода, если не задано, выводит все поля. Доступны такие варианты: ‘source’, ‘fstype’, ‘itotal’, ‘iused’, ‘iavail’, ‘ipcent’, ‘size’, ‘used’, ‘avail’, ‘pcent’, ‘file’ и ‘target’;
  • -P – использовать формат вывода POSIX;
  • –total – выводить всю информацию про использованное и доступное место;
  • -t, –type – выводить информацию только про указанные файловые системы;
  • -x – выводить информацию обо всех, кроме указанных файловых систем;

Теперь, после основных опций рассмотрим подробнее как примеры df linux.

Поиск больших файлов и директорий командой du

Команда du используется для вывода размеров файлов и директорий в Linux. Ее можно использовать для поиска больших файлов и директорий. Для этого выполняется команда du и результат сортируется по размеру. Таким образом можно увидеть, кто занимает больше всего места на диске.

Найдем пять самых больших файлов и директорий:

  • Символ . указывает путь и означает текущую директорию. Для поиска в другой директории укажите вместо точки ее путь.
  • Опции -ahx означают:a — искать и файлы и директории;h — выводить информацию в удобно-читаемом формате;x — не выполнять поиск на других файловых системах.
  • sort -rh выполняет сортировку результата.
  • head −5 выводит только пять первых результатов.

Узнаем размер произвольной папки или сразу нескольких

Просто допишем путь к папке которая нас интересует:

# du -sh /home/backup 25G /home/backup

1
2

hc@host dir# du -sh  /home/backup

25Ghomebackup

Поглядим размер всех объектов в папке:

# du -sh * 508K conf 132K mail 1,2M tmp 3,4G web

1
2
3
4
5

hc@host dir#  du -sh *

508Kconf

132Kmail

1,2Mtmp

3,4Gweb

Добавим в вывод итоговый размер папки с помощью ключа

# du -sсh * 508K conf 132K mail 1,2M tmp 3,4G web 3,4G итого

1
2
3
4
5
6

hc@host dir#  du -sсh *

508Kconf

132Kmail

1,2Mtmp

3,4Gweb

3,4Gитого

И то же самое для произвольного пути:

# du -sh /home/* 328K /home/admin 161M /home/aqua 25G /home/backup 2,0G /home/ice 752M /home/tuser

1
2
3
4
5
6

hc@host dir# du -sh /home/*

328Khomeadmin

161Mhomeaqua

25Ghomebackup

2,0Ghomeice

752Mhometuser

История

В сентябре 2002 года Coreutils GNU были созданы путем слияния Textutils , shellutils и FileUtils.В июле 2007 года лицензии GNU Coreutils были обновлены с GPLv2 на GPLv3.

20 января 2016 была представлена новая версия GNU Coreutils — набора базовых утилит для работы с файлами, текстом и командной оболочкой (cp, mv, chown, ls, dd, echo, cat и т. д.). Новая версия включает 169 коммитов от 12 людей.

В новой версии:

  • В дополнение к команде base64 была добавлена команда base32;
  • Новые функции:
    • comm, cut, head, numfmt, paste и tail теперь имеют опцию «-z» («—zero-terminated»), добавляющую в конец записи нулевой символ (NUL);
    • dd с опцией «—human-readable» преобразует информацию о размере в читаемый формат, например: «3441325000 bytes (3.4 GB, 3.2 GiB) copied»;
    • в утилиты md5sum, sha1sum, sha224sum, sha256sum, sha384sum и sha512sum добавлена опция «—ignore-missing», исключающая проверку несуществующих файлов;
    • printf теперь поддерживает спецификатор формата ‘%q’, выводящий аргумент в формате, пригодном для большинства оболочек, показывающих непечатные символы в виде «$’…’»;
  • Исправления и улучшения:
    • mv больше не вызывает потери данных при удалении исходного каталога, указанного в параметрах несколько раз, если этот каталог является пунктом назначения;
    • утилиты, влияющие на директории (chmod, cp, rm и т. д.), теперь лучше работают с XFS;
    • stat -f —format=%T теперь выводит тип ФС для новых псевдо-ФС «bpf_fs», «btrfs_test», «nsfs», «overlayfs» и «tracefs», а также для «acfs»;
    • все утилиты выводят аргументы, полученные от пользователя, в сообщениях об ошибках;
  • Изменения:
    • join, sort и uniq с опцией «—zero-terminated» воспринимают ‘\n’ как разделитель полей;
    • ls теперь экранирует имена файлов, что подходит для использования их в командной оболочке и при выводе в терминал.

Файлы для восстановления системы

По умолчанию настроенная Windows может съедать много места благодаря зарезервированным под восстановлению системы гигабайтам. Отключать точки для бэкапа полностью мы, конечно же, не советуем. Но, что нам мешает слегка уменьшить аппетиты операционной системы? Для этого:

  • Кликните правой кнопкой мыши по “Этот компьютер” и выберите пункт “Свойства”.
  • Затем в левой части перейдите в “Дополнительные параметры системы”.
  • Зайдите во вкладку “Защита системы” и выберите пункт “Настроить”.
  • Передвиньте ползунок по своему усмотрению.

Также стоит упомянуть, что после обновления на Windows 10, в системе остается папка «windows.old», которая сохраняет все личные документы и файлы пользователя. Также с помощью этой директории можно осуществить возврат на предыдущую версию операционной системы, в случае если «десятка» вам не понравилась. Эта папка тоже может занимать очень много места. Однако удалить её простым способом не получится. Подробнее по этой теме мы писали в другой статье.

Увеличиваем место на диске С

Рекомендовано, чтоб всегда было свободно место на диске С не менее 30 ГБ. Это необходимо для корректной работы системы и на случаи обновлений, резервных копий и т.д.

Увеличить место на диске С за счет другого диска довольно просто и чтоб не делать миллион скриншотов я предлагая посмотреть небольшое видео:

Free Disk Usage Analyzer by Extensoft — информация о занимаемом месте на дисках

Бесплатное приложение Free Disk Usage Analyzer показывает данные о том, сколько места занимают папки и файлы на разделах жесткого диска компьютера и на других подключенных устройствах. Программа работает на русском языке.

Возможности Free Disk Usage Analyzer:

  • Отображение самых больших файлов на выбранном диске или в папке.
  • Показ самых больших папок по размеру папки, среднему размеру файла или количеству файлов.
  • Представление информации визуально в виде графиков.
  • Имеется функция сортировки по отображаемым столбцам.

Из окна программы можно запустить системное средство «Очистка диска». В настройках Free Disk Analyzer by Extensoft выберите фильтр для поиска определенного типа файлов: картинки и фото, музыка, видео, документы, архивы, файлы Windows, другое.

Некоторые материалы по очистке диска

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

  • Пропадает место на жестком диске
  • Как очистить папку WinSxS
  • Как удалить папку Windows.old
  • Как очистить жесткий диск от ненужных файлов

На этом всё. Буду рад, если статья была полезной для вас.

Чего не стоит делать

  • Ни в коем случае не удаляйте никакие файлы и папки на диске C если они там без ваших действий. Т.е. можете удалять только те папки, которые создали Вы. В противном случае это может привести к сбою ОС.
  • Не делайте ничего с файлом гибернации. Не отключайте его, не удаляйте. Только опытные пользователи могут правильно отключить его, чтоб в дальнейшем не столкнуться с системной ошибкой. Выигранные мегабайты того не стоят.
  • Не отключайте и не изменяйте размер файла подкачки – это повлияет на быстродействие вашей системы.
  • Стандартная «Очистка диска». В свойствах компьютера есть стандартная утилита, которая якобы чистит диск С от мусора. Да, это так, но к примеру, за 1 год использования компьютера там соберётся файлов на 60 МБ (это очень мало). Просто непросто это уже не актуально и не стоит трать свое время.
  • Удаляйте программы полностью (подробно об этом написано выше), при помощи специальных файлов инсталляции uninstall.exe. Не нужно удалять программы вместе с папкой в разделе “program files” иначе останется много других файлов этой программы на диске.

Как увидеть самые большие файлы на диске

С помощью встроенного средства Windows PowerShell пользователь может получить сведения о самых больших файлах, которые расположены на определенном разделе жесткого диска.

Выполните следующее:

  1. Запустите Windows PowerShell.
  2. В окне оболочки введите команду:

Get-ChildItem d: -r -ErrorAction SilentlyContinue |sort -descending -property length | select -first 20 name, DirectoryName, @{Name=”Мб”;Expression={::round($_.length / 1MB, 2)}} | Out-GridView

Некоторые параметры команды:

d: — выбор диска.-first 20 name — выбор первых 20 файлов, вы можете задать свою цифру.Out-GridView — таблица выводится в отдельном окне. Если нужно отобразить файлы в окне PowerShell, не используйте этот параметр.

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

Build Instructions

There are currently two methods to build the uutils binaries: either Cargo
or GNU Make.

For either method, we first need to fetch the repository:

$ git clone https://github.com/uutils/coreutils
$ cd coreutils

Cargo

Building uutils using Cargo is easy because the process is the same as for
every other Rust program:

$ cargo build --release

This command builds the most portable common core set of uutils into a multicall
(BusyBox-type) binary, named ‘coreutils’, on most Rust-supported platforms.

Additional platform-specific uutils are often available. Building these
expanded sets of uutils for a platform (on that platform) is as simple as
specifying it as a feature:

$ cargo build --release --features macos
# or ...
$ cargo build --release --features windows
# or ...
$ cargo build --release --features unix

If you don’t want to build every utility available on your platform into the
final binary, you can also specify which ones you want to build manually.
For example:

$ cargo build --features "base32 cat echo rm" --no-default-features

If you don’t want to build the multicall binary and would prefer to build
the utilities as individual binaries, that is also possible. Each utility
is contained in its own package within the main repository, named
«uu_UTILNAME». To build individual utilities, use cargo to build just the
specific packages (using the option). For example:

$ cargo build -p uu_base32 -p uu_cat -p uu_echo -p uu_rm

GNU Make

Building using is a simple process as well.

To simply build all available utilities:

$ make

To build all but a few of the available utilities:

$ make SKIP_UTILS='UTILITY_1 UTILITY_2'

To build only a few of the available utilities:

$ make UTILS='UTILITY_1 UTILITY_2'

Ответ 5

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

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

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

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

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

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

#!/usr/bin/env python

import sys

import re

sizeRe = re.compile(r»^(\d+)(.*)$»)

for line in sys.stdin.readlines():

    mo = sizeRe.match(line)

    if mo:

        size = int(mo.group(1))

        if size < 1024:

            size = str(size)+»K»

        elif size < 1024 ** 2:

            size = str(size/1024)+»M»

        else:

            size = str(size/(1024 ** 2))+»G»

        print «%s%s»%(size,mo.group(2))

    else:

        print line

Сортируем вывод по размеру папок/файлов

По умолчанию вывод сортируется по имени объектов файловой системы, что согласитесь, не всегда удобно – например, нам надо найти самую “толстую” папку в каталоге, где тысячи объектов. Представили?

В такой ситуации нам здорово поможет команда

.

Параметр

указывает, что нужно использовать числовую сортировку, а

задает обратный порядок (т.е. самые большие папки будут выведены первыми):

# du -s * | sort -nr 3531200 web 1216 tmp 508 conf 132 mail

1
2
3
4
5

hc@host dir# du -s * | sort -nr

3531200web

1216tmp

508conf

132mail

естественно, можно указать в чем считать с помощью ключей

,

или

, про которые написано выше. Но удобнее передать

вместо

, параметр

– который сортирует числа переведенные в удобочитаемый формат (1G, 20.3K и т.д.):

# du -sh /home/* | sort -h 328K /home/admin 23M /home/mvsauto 54M /home/olymp 161M /home/aqua 752M /home/tuser 1,3G /home/magma 2,0G /home/ice 25G /home/backup

1
2
3
4
5
6
7
8
9

hc@host dir# du -sh /home/* | sort -h

328Khomeadmin

23Mhomemvsauto

54Mhomeolymp

161Mhomeaqua

752Mhometuser

1,3Ghomemagma

2,0Ghomeice

25Ghomebackup

P.S. Если вы запустили выполнение команды в месте с большим количеством файлов (например в корне файловой системы), то придется ждать весьма значительное количество времени. Прервать выполнение команды можно с помощью комбинации клавиш

.

P.P.S Иногда полезно вывести результат не в консоль, а в файл (например, если объектов очень много), что бы потом спокойно просмотреть его.

du -sh * | sort -hr > total.log

1 du-sh *|sort-hr>total.log
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: