Можно ли использовать ls
в Unix список общего подкаталога и всего его содержимого, в отличие от обычного 4K
(я полагаю) только самого файла каталога?
total 12K
drwxrwxr-x 6 *** *** 4.0K 2009-06-19 10:10 branches
drwxrwxr-x 13 *** *** 4.0K 2009-06-19 10:52 tags
drwxrwxr-x 16 *** *** 4.0K 2009-06-19 10:02 trunk
Пролистав справочные страницы, я выхожу пустым.
alias ducks='du -cksh * | sort -hr | head -n 15'
Ответы:
Попробуйте что-то вроде:
короткая версия:
Объяснение:
du
: D isk U мудрец-s
: Показать сводку для каждого указанного файла. (Эквивалентно-d 0
)-h
: "Человекочитаемый" вывод. Используйте единичные суффиксы: B yte, K ибибайт (KiB), M ebibyte (MiB), G ibibyte (GiB), T ebibyte (TiB) и P ebibyte (PiB). (Base2)источник
*(D)
чтобы соответствовать скрытые ( d OT) файлы наряду с обычными файлами. При использовании bash, вы можете использовать* .[!.]*
для совпадения обоих.du -sch * .[!.]* | sort -rh
это здорово (показать отсортированный вывод). На Mac do:brew install coreutils
и затемdu -sch * .[!.]* | gsort -rh
du -sk * | sort -n
отсортирует папки по размеру Полезно при поиске свободного места ..источник
| tail -r
сортировку по величине.sort -rn
сортирует вещи в обратном порядке.sort -rn | head -n 10
покажет только несколько лучших, если это будет интересно.sort -rh
будет хорошо работать с тем,du -cksh *
как он сортирует читаемые человеком единицы.du -ksh | sort -rn
это то же самое, что иdu -cksh | sort -rn
. Так же, какdu -ksh
и так жеdu -cksh
.Это будет отображаться в удобочитаемом формате.
источник
sort -h
здесь: gnu.org/software/coreutils/manual/... Это особенно там для сортировки103K
,102M
, и1.1G
т.д. Это должно быть доступно на многих систем в настоящее время, но не все.du -sh * | sort -rh
(-r для первого списка больших папок)du -sh $(ls -A) | sort -h
Чтобы вывести список самых больших каталогов из текущего каталога в удобочитаемом формате:
du -sh * | sort -hr
Лучший способ ограничить количество строк может быть
du -sh * | sort -hr | head -n10
Где вы можете увеличить суффикс
-n
флага, чтобы ограничить количество строк в спискеОбразец:
Это делает его более удобным для чтения :)
источник
Чтобы отобразить его в
ls -lh
формате, используйте:Код Awk объяснил:
Пример вывода:
источник
--color=no
sort --key=5,5h
для сортировки «читаемых человеком единиц» из пятого столбцаsort: stray character in field spec: invalid field specification
5,5h'`. Я иногда очень ненавижу Макса = \Вы хотите команду 'du -sk' du = "использование диска"
Флаг -k дает вывод в килобайтах, а не по умолчанию для секторов диска (блоки по 512 байт).
Флаг -s будет перечислять только вещи в каталоге верхнего уровня (то есть текущем каталоге по умолчанию или каталоге, указанном в командной строке). Странно, что du имеет противоположное поведение ls в этом отношении. По умолчанию du будет рекурсивно давать вам использование диска каждого подкаталога. В отличие от этого, ls выдаст список файлов только в указанном каталоге. (ls -R дает вам рекурсивное поведение.)
источник
Поместите это объявление функции оболочки в ваши скрипты инициализации оболочки:
Я назвал его,
duls
потому что он показывает вывод из обоихdu
иls
(в этом порядке):Объяснение:
paste
Утилита создает столбцы из входных данных в соответствии со спецификацией , что вы даете ему. Учитывая два входных файла, он помещает их рядом, с вкладкой в качестве разделителя.Мы даем ему вывод в
du -hs -- "$@" | cut -f1
качестве первого файла (на самом деле входной поток) и вывод вls -ld -- "$@"
качестве второго файла.В функции
"$@"
оценивает список всех аргументов командной строки, каждый в двойных кавычках. Следовательно, он будет понимать символы и пути с пробелами и т. Д.Двойные минусы (
--
) сигнализируют об окончании опций командной строкиdu
иls
. Без них поговоркаduls -l
может привести к путанице,du
и любой вариантdu
,ls
который не имеетls
этого, может привести к путанице (и параметры, существующие в обеих утилитах, могут не означать одно и то же, и это будет довольно беспорядочно).cut
После того, какdu
просто вырезает первый столбецdu -hs
вывода (размеры).Я решил поместить
du
вывод слева, иначе мне пришлось бы управлять шатким правым столбцом (из-за разной длины имен файлов).Команда не будет принимать флаги командной строки.
Это было проверено как в, так
bash
и вksh93
. Это не будет работать с/bin/sh
.источник
Я всегда использую
du -sk
(-k
флаг, показывающий размер файла в килобайтах) вместо этого.источник
источник
ncdu
Ncursesdu
Эта удивительная утилита CLI позволяет легко находить большие файлы и каталоги в интерактивном режиме.
Например, из дерева известного проекта мы делаем:
Итог свой:
Затем я вхожу вниз и вправо на клавиатуре, чтобы перейти в
/drivers
папку, и я вижу:ncdu
только рекурсивно вычисляет размеры файлов один раз при запуске для всего дерева, так что это эффективно.«Общее использование диска» и «Кажущийся размер» аналогичны
du
, и я объяснил это: почему вывод `du` часто так сильно отличается от` du -b`Домашняя страница проекта: https://dev.yorhel.nl/ncdu
Смежные вопросы:
Проверено в Ubuntu 16.04.
ncdu
неинтерактивное использованиеЕще одна крутая особенность
ncdu
заключается в том, что вы можете сначала выгружать размеры в формате JSON, а затем снова использовать их.Например, чтобы сгенерировать файл, запустите:
а затем изучить его в интерактивном режиме с:
Это очень полезно, если вы имеете дело с очень большой и медленной файловой системой, такой как NFS.
Таким образом, вы можете сначала экспортировать только один раз, что может занять несколько часов, а затем исследовать файлы, выйти, снова исследовать и т. Д.
Выходной формат - просто JSON, поэтому его легко использовать и в других программах, например:
раскрывает простую структуру данных дерева каталогов:
Проверено в Ubuntu 18.04.
источник
du -sch * в том же каталоге.
источник
Это мне нравится
обновление : мне не понравился предыдущий, потому что он не показывает файлы в текущем каталоге, он только перечисляет каталоги.
Пример вывода для
/var
на Ubuntu:sudo du -hDaxd1 /var | sort -h | tail -n10
источник
Все это отличные предложения, но я использую:
-ksh
убедитесь, что файлы и папки перечислены в удобочитаемом формате и представлены в мегабайтах, килобайтах и т. д. Затем вы сортируете их в числовом формате и переворачиваете сортировку, чтобы на первом месте были большие.Единственным недостатком этой команды является то, что компьютер не знает, что гигабайт больше, чем мегабайт, поэтому он будет сортировать только по номерам, и вы часто будете находить списки, подобные этой:
Просто будьте осторожны, чтобы посмотреть на устройство.
Эта команда также работает на Mac (а
sort -h
не, например).источник
-h
флаг изdu
команды, вы сократите этот недостаток-h
вместо-n
сортировки.У du есть еще одна полезная опция:
-S, --separate-dirs
указание du не включать размер подкаталогов - в некоторых случаях удобно.Пример 1 - показывает только размеры файлов в каталоге:
Пример 2 - показывает размеры файлов и подкаталогов в каталоге:
источник
ду-см * | сортировать -nr
Выход по размеру
источник
посмотрите на
du
команду для этогоисточник
просто предупреждение, если вы хотите сравнить размеры файлов. du дает разные результаты в зависимости от файловой системы, размера блока, ....
Может случиться так, что размер файлов будет разным, например, при сравнении одного и того же каталога на локальном жестком диске и запоминающем устройстве USB. Я использую следующий скрипт, в том числе ls, для суммирования размера каталога. Результат в байтах с учетом всех подкаталогов.
источник
Чтобы рекурсивно отобразить размеры файлов и подкаталогов текущего каталога:
Чтобы отобразить ту же информацию о размере, но без рекурсивной печати их подкаталогов (это может быть огромный список), просто используйте параметр --max-глубина :
источник
Некоторое время я использовал Nautilus (на рабочем столе Gnome на RHEL 6.0) для удаления файлов в моей домашней папке вместо использования
rm
команды в bash. В результате общий размер, показанныйне соответствует сумме использования диска каждого подкаталога, когда я использовал
Мне потребовалось некоторое время, чтобы понять, что Nautilus отправляет удаленные файлы в свою папку «Корзина», и эта папка не указана в
du -sh *
команде. Итак, просто хотел поделиться этим, на случай, если кто-то столкнулся с той же проблемой.источник
Хм, лучший способ - использовать эту команду:
Тогда вы сможете получить папки всех размеров по всему вашему серверу. Легко помочь вам найти самые большие размеры.
источник
Следующее легко запомнить
https://explainshell.com/explain?cmd=ls+-ltrapR
источник
Если вам нужен больший контроль над
size
списком каталогов, вы можете использовать переключательthreshold
(-t
), как показано в:du
-d
isku
sageh
- человекочитаемый форматt
- размер порогаЗдесь мы хотим перечислить все каталоги, размер которых превышает 1 ГБ.
Пояснение :
Единицы, которые описаны в вики :
источник
Я столкнулся с проблемой, аналогичной описанной Мартином Уайльдом, в моем случае сравнив один и тот же каталог на двух разных серверах после зеркалирования с помощью rsync.
Вместо того, чтобы использовать скрипт, я добавил
-b
флаг,du
который считает размер в байтах и, насколько я могу судить, устранил различия на двух серверах. Вы все еще можете использовать,-s -h
чтобы получить понятный вывод.источник
поместите в сценарий инициализации, как .bashrc ... настройте def по мере необходимости.
источник
введите "ls -ltrh / path_to_directory"
источник