Команди df і du повідомляють про використання дискового простору з оболонки Bash, яка використовується в Linux, macOS та багатьох інших Unix-подібних операційних системах. Ці команди дозволяють легко визначити, що використовує сховище вашої системи.
Перегляд загального, доступного та використаного дискового простору
Bash містить дві корисні команди, пов’язані з дисковим простором. Щоб дізнатися доступний і використаний дисковий простір, скористайтеся df (дискові файлові системи, які іноді називають дисковими вільними). Щоб дізнатися, що займає використане місце на диску, використовуйте du (використання диска).
Введіть df і натисніть enter у вікні терміналу Bash, щоб почати. Ви побачите багато результатів, схожих на скріншот нижче. Використання df без будь-яких параметрів відобразить доступний і використаний простір для всіх змонтованих файлових систем. На перший погляд це може здатися непроникним, але зрозуміти це досить легко.
df
Кожен рядок дисплея складається з шести колонок.
Файлова система: ім’я цієї файлової системи.
1K-Blocks: кількість 1K блоків, доступних у цій файловій системі.
Використано: кількість 1К блоків, які були використані в цій файловій системі.
Доступно: кількість 1K блоків, які не використовуються в цій файловій системі.
Use%: обсяг простору, який використовується в цій файловій системі, наведений у відсотках.
Файл: ім’я файлової системи, якщо вказано в командному рядку.
Змонтовано: точка монтування файлової системи.
Ви можете замінити кількість блоків 1K на більш корисний вихід, використовуючи параметр -B (розмір блоку). Щоб скористатися цією опцією, введіть df, пробіл, а потім -B і літеру зі списку K, M, G, T, P, E, Z або Y. Ці літери представляють кілограм, мега, гіга, тера, значення пета, екза, дзета та йотта від кратної шкалі 1024.
Наприклад, щоб побачити дані про використання диска в мегабайтах, скористайтеся такою командою. Зверніть увагу, що між B і M немає пробілу.
df -BM
Параметр -h (доступний для читання) наказує df використовувати найбільш застосовні одиниці розміру кожної файлової системи. У наступному виводі зауважте, що існують файлові системи з розмірами гігабайти, мегабайти і навіть кілобайти.
df -h
Якщо вам потрібно побачити інформацію, представлену в кількості індексів, скористайтеся параметром -i (іноди). Inode — це структура даних, яка використовується файловими системами Linux для опису файлів і зберігання метаданих про них. У Linux іноди містять такі дані, як ім’я, дата модифікації, положення на жорсткому диску тощо, для кожного файлу та каталогу. Це не буде корисним для більшості людей, але системним адміністраторам іноді доводиться звертатися до такого типу інформації.
df -i
Якщо не вказано, df надасть інформацію про всі змонтовані файлові системи. Це може призвести до засмічення дисплея з великою кількістю результатів. Наприклад, записи /dev/loop у списках є псевдофайловими системами, які дозволяють монтувати файл так, ніби він є розділом. Якщо ви використовуєте новий метод фіксації Ubuntu для встановлення програм, ви можете придбати багато з них. Доступний простір на них завжди буде 0, оскільки вони насправді не є файловою системою, тому нам не потрібно їх бачити.
Ми можемо сказати df виключати файлові системи певного типу. Для цього нам потрібно знати, який тип файлової системи ми хочемо виключити. Параметр -T (тип друку) надасть нам цю інформацію. Він наказує df включити тип файлової системи у вихідні дані.
df -T
Усі записи /dev/loop є файловими системами squashfs. Ми можемо виключити їх за допомогою такої команди:
df -x squashfs
Це дає нам більш керований результат. Щоб отримати підсумок, ми можемо додати параметр –total.
df -x squashfs --total
Ми можемо попросити df включати лише файлові системи певного типу, використовуючи параметр -t (тип).
df -t ext4
Якщо ми хочемо побачити розміри набору файлових систем, ми можемо вказати їх за назвою. Назви дисків у Linux розташовані за алфавітом. Перший диск називається /dev/sda , другий диск — /dev/sdb і так далі. Перегородки пронумеровані. Отже, /dev/sda1 — це перший розділ на диску /dev/sda. Ми кажемо df повертати інформацію про конкретну файлову систему, передаючи ім’я файлової системи як параметр команди. Давайте подивимося на перший розділ першого жорсткого диска.
df /dev/sda1
Зауважте, що в імені файлової системи можна використовувати символи підстановки, де * позначає будь-який набір символів, а ? представляє будь-який окремий символ. Отже, щоб переглянути всі розділи на першому диску, ми можемо використовувати:
df /dev/sda*
Ми можемо попросити df звітувати про набір іменованих файлових систем. У нього ми запитуємо розміри файлових систем /dev і /run, і ми хотіли б загальну суму.
df -h --total /dev /run
Щоб додатково налаштувати відображення, ми можемо вказати df, які стовпці включити. Для цього скористайтеся параметром –output і надайте розділений комами список необхідних імен стовпців. Не включайте пробіли в список, розділений комами.
Джерело: ім’я файлової системи.
fstype: Тип файлової системи.
itotal: Розмір файлової системи в inodes.
iused: простір, що використовується у файловій системі в inodes.
iavail: доступний простір у файловій системі в inodes.
ipcent: відсоток використаного простору у файловій системі в inodes, у відсотках.
size: Розмір файлової системи, за замовчуванням у 1K блоках.
використано: простір, що використовується у файловій системі, за замовчуванням у 1К блоках.
avail: доступний простір у файловій системі, за замовчуванням у 1K блоках.
pcent: відсоток використаного простору у файловій системі в inodes, за замовчуванням у 1K блоках.
file: ім’я файлової системи, якщо вказано в командному рядку.
target: точка монтування файлової системи.
Давайте попросимо df повідомити про перший розділ на першому диску з читабельними номерами та зі стовпцями source, fstype, size, used, avail та pcent:
df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent
Довгі команди є ідеальними кандидатами на перетворення в псевдонім. Ми можемо створити псевдонім dfc (для df custom), ввівши наступне та натиснувши Enter:
alias dfc="df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent"
Введення dfc і натискання клавіші Enter матиме такий самий ефект, як і введення довгої команди. Щоб зробити цей псевдонім постійним, додайте його до свого файлу .bashrc або .bash_aliases.
Ми шукали способи уточнити вихідні дані з df, щоб інформація, яку він відображає, відповідала вашим вимогам. Якщо ви хочете застосувати протилежний підхід і змусити df повернути всю інформацію, він, можливо, може використовувати параметри -a (усі) і –output, як показано нижче. Параметр -a (all) просить df включити кожну файлову систему, а використання параметра –output без розділених комами списку стовпців змушує df включати кожен стовпець.
df -a --output
Передача виводу з df через команду less — це зручний спосіб переглянути великий обсяг виводу, який це може створити.
df -a --output | less
Дізнайтеся, що займає використаний дисковий простір
Давайте проведемо деяке розслідування і з’ясуємо, що займає місце на цьому ПК. Ми почнемо з однієї з наших команд df.
df -h -t ext4
На першому розділі першого жорсткого диска використовується 78% дискового простору. Ми можемо використовувати команду du, щоб показати, які папки містять найбільше даних. Якщо виконати команду du без параметрів, відобразиться список усіх каталогів і підкаталогів під каталогом, у якому була видана команда du. Якщо ви зробите це з домашньої папки, список буде дуже довгим.
du
Формат виведення дуже простий. Кожен рядок показує розмір і назву каталогу. За замовчуванням розмір відображається в 1K блоках. Щоб змусити du використовувати інший розмір блоку, використовуйте параметр -B (розмір блоку). Щоб використовувати цю опцію, введіть du, пробіл, а потім -B і літеру зі списку K, M, G, T, P, E, Z і Y, як ми робили вище для df . Щоб використовувати 1М блоків, скористайтеся цією командою:
du -BM
Так само, як і df, du має доступний для читання параметр -h, який використовує діапазон розмірів блоків відповідно до розміру кожного каталогу.
du -h
Параметр -s (підсумувати) дає підсумок для кожного каталогу без відображення підкаталогів у кожному каталозі. Наступна команда просить du повернути інформацію в підсумковому форматі, у читабельних для людини числах, для всіх каталогів
du -h -s *
нижче поточного робочого каталогу.
du -sm Pictures/* | sort -nr
У папці «Зображення» зберігається найбільше даних. Ми можемо попросити du відсортувати папки за розміром від найбільшої до найменшої.
Уточнюючи інформацію, яку повертають df і du, можна легко дізнатися, скільки місця на жорсткому диску використовується, і дізнатися, що займає цей простір. Потім ви можете прийняти зважене рішення про переміщення деяких даних в інше сховище, додавання іншого жорсткого диска до комп’ютера або видалення зайвих даних. Ці команди мають багато варіантів. Тут ми описали найкорисніші параметри, але ви можете побачити повний перелік параметрів для команда df і для du команда
на сторінках керівництва Linux.