Як дізнатися розмір каталогу? Включаючи підкаталоги та файли.
Як дізнатися розмір каталогу? Включаючи підкаталоги та файли.
Відповіді:
du -s directory_name
Або щоб отримати зрозумілий для людини вихід:
du -sh directory_name
Цей -s
параметр означає, що він не буде розміщувати розмір для кожного підкаталогу, а лише загальний розмір.
du -sh bag
працював ідеально!
Хоча використання окремого пакета, такого як ncdu, може спрацювати, однакове порівняння багатьох папок можна виконати певною мірою, просто надавши списку папок для збільшення розміру. Наприклад, для порівняння каталогів вищого рівня у вашій системі ...
cd /
sudo du -sh ./*
du -sh /*
GNU du
приймає -b
варіант.
Див. man
Сторінку та info
сторінку для отримання додаткової довідки:
-b
,--bytes
еквівалентно--apparent-size --block-size=1
du -csh
-c виробляє велику суму
-c
Не має сенсу використовувати разом з -s
, НЕ так? -s
відображає лише розмір вказаного каталогу, тобто загальний розмір каталогу.
Ви також можете використовувати ls -ldh:
ls -ldh /etc
drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc
-l - для довгого переліку; -d призначений для відображення інформації про dir, а не для вмісту dir, -h - для відображення розміру у читаному для людини форматі.
Я завжди встановлюю пакет "ncdu" і бачу весь вихід усіх каталогів із графічним поданням. Це тому, що мені зазвичай потрібно знати, що займає найбільше дискового простору на моїх машинах, незалежно від того, скільки підсумовує окремий каталог.
Використання: sudo ncdu /
(Вам не потрібні sudo
папки, на яких ви прочитали дозвіл).
Пройде певний час для сканування статистики використання диска у всій файловій системі. У ньому є гарне графічне зображення командного рядка та включена навігація по клавіатурі за допомогою клавіш зі стрілками, як-от заглиблюючись у сканований шлях. Ви також можете видалити елементи, натиснувши D.
Ви можете використовувати "file-size.sh" з бібліотеки awk Velor :
ls -ARgo "$@" | awk '{q += $3} END {print q}'
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
одиницею за замовчуванням є 512-байтові блоки відповідно до POSIX та кілобайт на Linux (якщо не встановлена змінна середовищеPOSIXLY_CORRECT
) або зdu -k
.