Почему использование файла уменьшается существенно, когда каталог копируется от гостя Ubuntu к диску usb?

Мне установили VMware в моем Windows 10, и гостем является Ubuntu. Я скопировал каталог 2.2G от гостя Ubuntu к моему диску флэш-памяти USB этой командой:

rsync ubuntudirectory usbdirectory -r

Но я нахожу, что файловое пространство уменьшается 1.0G.

du ubuntudirectory -hc

2.2G

du usbdirectory -hc

1.2G

Что случилось? В каталоге существуют только чистые текстовые файлы.

И я думал, что это будет возможно слишком длинная длина некоторых имен файлов, которые делают копию (rsync), опускают некоторые файлы, но это не был факт.

ls usbdirectory | wc -l

559562

ls ubuntudirectory | wc -l

560213

Скорее всего, файлы почти имеют тот же размер, таким образом, файлам не удалось быть переданными, кажется едва причиной большого дискового пространства уменьшения.

Чтобы удостовериться, что это не проигнорированные файлы, которые производят уменьшение (как @Anwar подозреваемый), я попытался воспроизвести его с помощью еще одного каталога, который является значительно уменьшенным. Уменьшение 10M от 17M до 6.8M. Эти два каталога имеют просто ту же сумму файлов (точная сумма 8948). После rsynced назад к гостевому диску (от usb), каталог, восстановленный от 6.8M до 17M.

du /home/myname/somewhere/text -hc

17M

rsync /home/myname/somewhere/text /media/myname/UUI/text  -r

du /media/myname/UUI/text -hc

6.8M

rsync /media/myname/UUI/text /home/myname/text -r

du /home/myname/text -hc

17M

0
задан 25 August 2016 в 06:35

1 ответ

Файлы записаны в блоках, состоящих из множества 512 байтов, например, 1 КБ, 4 КБ. Размер блока отличается между файловыми системами и размерами диска. Чем больше диск, тем больше блок. Файл, содержащий 1,5 КБ данных, займет 1,5 КБ дискового пространства в файловой системе с размером блока 512 КБ, 2 КБ в файловой системе с блоками на 1 КБ, 4 КБ в файловой системе с блоками на 4 КБ.

du команда отображает оценку дискового пространства всех блоков, занятых файлами.

, Если (особенно, если) у Вас есть большое количество маленьких файлов, пространство, зарезервированное в блоке в конце каждого файла, но не используемое по условию, будет больше на дисках/файловых системах с большим размером блока (большие диски).

можно проверить размер блока на конкретное устройство с:

sudo blockdev --getbsz /dev/sda1 
1
ответ дан 28 September 2019 в 16:15

Другие вопросы по тегам:

Похожие вопросы: