Як отримати розмір файлу або каталогу в Linux

Коли ви використовуєте команду Linux du, ви отримуєте як фактичне використання диска, так і справжній розмір файлу або каталогу. Ми пояснимо, чому ці значення не збігаються.

Фактичне використання диска та справжній розмір

Розмір файлу та місце, яке він займає на жорсткому диску, рідко бувають однаковими. Місце на диску розподіляється блоками. Якщо файл менший за блок, йому все одно виділяється цілий блок, оскільки файлова система не має меншої одиниці нерухомості для використання.

Якщо розмір файлу не є точним кратним блокам, простір, який він використовує на жорсткому диску, завжди має округлятися до наступного цілого блоку. Наприклад, якщо файл більший за два блоки, але менший за три, для його зберігання все одно потрібно три блоки місця.

  4 найкращих зовнішніх твердотільних накопичувача для користувачів Linux на вибір у 2021 році

Використовуються два вимірювання щодо розміру файлу. Перший – це фактичний розмір файлу, який є кількістю байтів вмісту, з якого складається файл. Другий — ефективний розмір файлу на жорсткому диску. Це кількість блоків файлової системи, необхідних для зберігання цього файлу.

Приклад

Давайте розглянемо простий приклад. Ми переспрямуємо один символ у файл, щоб створити невеликий файл:

echo "1" > geek.txt

geek.txt” у вікні терміналу.’ width=”646″ height=”57″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Тепер ми будемо використовувати довгий список форматів, ls, щоб подивитися на довжину файлу:

ls -l geek.txt

The

Довжина — це числове значення, яке слідує за записами Дейва Дейва, яке становить два байти. Чому це два байти, коли ми надіслали лише один символ у файл? Давайте подивимося, що відбувається всередині файлу.

  Як грати в ігри Atari на Linux

Ми будемо використовувати команду hexdump, яка дасть нам точну кількість байтів і дозволить нам «бачити» недруковані символи як шістнадцяткові значення. Ми також будемо використовувати параметр -C (канонічний), щоб змусити вихідні дані відображати шістнадцяткові значення в