Назад | Перейти на главную страницу

Нужно ли самбе получить весь файл, чтобы определить его размер?

Учитывая следующую конфигурацию:

Если du -h /shared/filename команда выполняется на клиенте, потребуется ли клиенту получить весь файл с сервера, чтобы определить его размер? Что о du --apparent-size? А как насчет простого ls -lR операция?

Такая операция наверняка не прочтите файл.

Обе du и ls работают только с метаданными файлов, полученными с помощью варианта вызова stat () (на самом деле последние ls использует lstat() пока du использует fstatat()). Неважно, какие параметры вы передаете du или ls. Эти инструменты никогда не будут обрабатывать фактические данные файла.

Я не знаю ни одной файловой системы (могут быть исключения, когда дело доходит до реализации эзотерической файловой системы с плавким предохранителем), которая считывает фактический файл для получения этих метаданных.

Насколько я знаю, du использует вызов stat и извлекает метаданные файла, чтобы указать размер файла. На самом деле он не проверяет длину файла, если вы не используете -c flag, то он фактически считает байты.

Следовательно, он не должен получать файл.

ls делает тот же вызов статистики.

du --apparent-size должен передавать весь файл, так как он проверяет наличие разреженных областей и т. д.