Коли ви використовуєте команду Linux du, ви отримуєте як фактичне використання диска, так і справжній розмір файлу або каталогу. Ми пояснимо, чому ці значення не збігаються.
Фактичне використання диска та справжній розмір
Розмір файлу та місце, яке він займає на жорсткому диску, рідко бувають однаковими. Місце на диску розподіляється блоками. Якщо файл менший за блок, йому все одно виділяється цілий блок, оскільки файлова система не має меншої одиниці нерухомості для використання.
Якщо розмір файлу не є точним кратним блокам, простір, який він використовує на жорсткому диску, завжди має округлятися до наступного цілого блоку. Наприклад, якщо файл більший за два блоки, але менший за три, для його зберігання все одно потрібно три блоки місця.
Використовуються два вимірювання щодо розміру файлу. Перший – це фактичний розмір файлу, який є кількістю байтів вмісту, з якого складається файл. Другий — ефективний розмір файлу на жорсткому диску. Це кількість блоків файлової системи, необхідних для зберігання цього файлу.
Приклад
Давайте розглянемо простий приклад. Ми переспрямуємо один символ у файл, щоб створити невеликий файл:
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
Довжина — це числове значення, яке слідує за записами Дейва Дейва, яке становить два байти. Чому це два байти, коли ми надіслали лише один символ у файл? Давайте подивимося, що відбувається всередині файлу.
Ми будемо використовувати команду hexdump, яка дасть нам точну кількість байтів і дозволить нам «бачити» недруковані символи як шістнадцяткові значення. Ми також будемо використовувати параметр -C (канонічний), щоб змусити вихідні дані відображати шістнадцяткові значення в