Как вывести все файлы/каталоги, упорядоченные по размеру, включая скрытые
(те, имя которых начинается с точки), все за один раз?
Кразмер каталога, я имею в виду сумму всех размеров файлов в каталоге и во всех его подкаталогах.
Разница вКак отсортировать вывод du -h
по размеру?заключается в том, что я запрашиваю вывод, который включаетвсефайлы и каталоги в текущем каталоге –скрытые или нет.
Рекомендации
- Как отсортировать вывод
du -h
по размеру? - Как найти самые большие каталоги в Unix/Ubuntu?
- Как использовать
du
для просмотра файлов, размер которых превышает пороговое значение - Как сортировать
du
вывод по размеру? - Как вывести список всех файлов, упорядоченных по размеру
- Команда
du
не анализирует скрытые каталоги. - Как получить суммарные размеры каталогов
- Отображение размера каждого подкаталога в виде списка
- Быстрый способ отобразить размер каждого подкаталога
решение1
Как вывести все файлы/каталоги, упорядоченные по размеру, включая скрытые?
Использоватьdu
(использование диска)команда, которая является частьюGNU coreutils: 1
du -hs -- * .[^.]* | sort -h
The.[^.]*
регулярное выражениеобеспечивает включение скрытых файлов и каталогов.
К спискутолько скрытыйфайлы и каталоги, отсортированные по возрастанию размера:
du -hs -- .[^.]* | sort -h
Списоктолько каталоги– скрытые или нет – отсортированы по возрастанию размера:
du -hs -- */ .[^.]*/ | sort -h
Только списокфайлыв текущем каталоге
Списоквсефайлы, отсортированные по возрастанию размера: 2
ls -AhlS | grep '^-' | tac
Только списокскрытыйфайлы, отсортированные по возрастанию размера:
ls -hldS .* | grep '^-' | tac
Только списокобычный(не скрытые) файлы, отсортированные по возрастанию размера:
ls -lS | grep '^-' | tac
Список файловрекурсивно– во всем дереве подкаталогов
Об этом не говорится в вопросе, но иногда может потребоваться перечислить все файлы в дереве подкаталогов (включая текущий каталог), упорядоченные по размеру. 3
du -ah | sort -h
Вывод будет представлять собой список (возможно, пугающе длинный) как подкаталогов, так и файлов. Чтобы ограничить его только файлами, вам нужно будет иметь представление о том, какое расширение файла имеют самые большие файлы (посмотрев на вывод команды выше).
du -ah | sort -h | grep .<file-extension>
Здесь вам следует заменить <file-extension>
на zip
, png
, jpg
, или на любое другое расширение файла, которое имеют самые большие файлы.
Примеры:
du -ah | sort -h | grep .zip
du -ah | sort -h | grep .png
Рекомендации
- Страница
du
руководства Linux (использование диска) - GNU coreutils
- В регулярных выражениях знак вставки (
^
) означаетнет - Комментарий о том, как включить как скрытые, так и нескрытые файлы
- Синтаксис утилиты | Руководство 10,конец вариантов
ncdu
Анализатор использования диска- Ответить рекомендацию
ncdu
- Страница
ls
руководства Linux (список содержимого каталога) - Как обратить вывод в командной строке
- Как показать только папки размером более 1 ГБ
- Как вывести список всех файлов, упорядоченных по размеру
1
Я с благодарностью отношу свое решение кэтот комментарий. --
Аргументзнаменует конец вариантов.
Команда du
может быть мучительно медленной для очень больших файлов/папок. Рассмотрите возможность использованияncdu
вместо этого команду.
Для установки на производной Debian, включая Ubuntu, запустите: sudo apt install -y ncdu
.
В Arch Linux, включая MSYS2, запустите: yes | pacman -Syu ncdu
.
Чтобы использовать его, введите ncdu
и нажмите ↵.
2
Флаг-h
ls
выводит размеры файлов в удобном для восприятия человеком стиле.
Флаг -S
сортирует вывод в порядкеуменьшениеразмер.
Труба | grep '^-'
исключает каталоги и символические ссылки.
Труба| tac
инвертирует вывод.
3 Это, скорее всего, будет интересно, когда размер текущего каталога составляет несколько мегабайт, а не гигабайт.