Создание файла размером 1 ГБ не изменяет свободное место на жестком диске

Создание файла размером 1 ГБ не изменяет свободное место на жестком диске

Я пытаюсь создать пустой файл на основе оставшегося места на жестком диске. Проблема в том, что когда я создаю файл размером 1 ГБ, команда df показывает, что оставшееся место всего на 12 кб меньше, чем было до создания файла.

someone@here:/tmp/delete# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             36827144   5031592  29924788  15% /
tmpfs                   508508         0    508508   0% /lib/init/rw
varrun                  508508       156    508352   1% /var/run
varlock                 508508         4    508504   1% /var/lock
udev                    508508       140    508368   1% /dev
tmpfs                   508508      1108    507400   1% /dev/shm

someone@here:/tmp/delete# dd if=/dev/zero of=tempFile bs=1000 count=1 seek=1000000
1+0 records in
1+0 records out
1000 bytes (1.0 kB) copied, 0.000438915 s, 2.3 MB/s

someone@here:/tmp/delete# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             36827144   5031604  29924776  15% /
tmpfs                   508508         0    508508   0% /lib/init/rw
varrun                  508508       156    508352   1% /var/run
varlock                 508508         4    508504   1% /var/lock
udev                    508508       140    508368   1% /dev
tmpfs                   508508      1108    507400   1% /dev/shm

Кто-нибудь знает, почему команда df не учитывает весь 1 ГБ? Спасибо.

решение1

Вы создали его в файловой системе, которая поддерживаетразреженные файлытак что на самом деле он занимает всего 1000 байт, как и ddговорит вывод. Пропустите seekи используйте правильный count.

решение2

Отinfo coreutils du(выделено мной):

'--apparent-size'
Выводить видимые размеры, а не использование диска. Видимый размер файла — это количество байт, сообщаемое 'wc -c' для обычных файлов, или, в более общем смысле, 'ls -l --block-size=1' или 'stat --format=%s'. Например, файл, содержащий слово `zoo' без новой строки, будет, конечно, иметь видимый размер 3. Такой небольшой файл может потребовать от 0 до 16 КБ или более дискового пространства, в зависимости от типа и конфигурации файловой системы, в которой находится файл. Однакоредкийфайл создан с помощью эта команда:

dd bs=1 seek=2GiB if=/dev/null of=big

имеетвидимый размер 2 ГиБ, однако в большинстве современных систем это на самом делепочти не использует место на диске.

Связанный контент