У меня есть два идентичных файла, расположенных в двух разных файловых системах NFS. Согласно ls -l или du -b их размеры идентичны, но разница с du -k или ls -s составляет 114072 блоков, или 16,7%. Что может вызвать эту большую разницу?

$ du -k /path/to/nfs1/somefile.dat /path/to/nfs2/somefile.dat
786432  /path/to/nfs1/somefile.dat
672360  /path/to/nfs2/somefile.dat
$ cmp /path/to/nfs1/somefile.dat /path/to/nfs2/somefile.dat
$

1 ответ1

0

Возможно из-за редких файлов. Это может произойти, если в файлах есть блоки, которые еще не были записаны (они остаются равными 0). Система внутренне не выделяет все пространство, пока весь файл не будет записан хотя бы один раз.

Это оптимизация, которая происходит автоматически в linux по умолчанию, если файловая система поддерживает это. Большинство делают. Просто учтите, что эти файлы могут в конечном итоге вырасти до заявленного размера.

Для получения дополнительной информации и способа ее воспроизведения с помощью команды "dd" (откройте файл, найдите далеко, напишите немного):http://en.wikipedia.org/wiki/Sparse_file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .