2016-06-15 2 views
-1

Я использовал rsync для синхронизации с одной машины на другой (так что я думаю, что она должна быть той же самой папкой, содержащей один и тот же набор файлов, - и она содержит только файлы)`du -sh` производит разные результаты на разных машинах для одной и той же папки

когда я du -sh на оригинальной машине, она производит:

4.0M . 

Но на моем компьютере, она производит:

3.5M . 

когда я ls -lh в папке на обеих машинах, результаты одинаковы для каждого файла.

Я спросил кого-то, они сказали мне использовать du -bc, на этот раз результаты остались прежними.

Исходный сервер работает под управлением «SUSE Linux Enterprise Server 11 SP2», а на моем компьютере работает Ubuntu 12.04.

Похоже, что существует некоторая разница в реализации du -sh? Или почему он отличается от того же набора файлов?

+1

Я голосующий, чтобы закрыть этот вопрос как не по теме, потому что речь идет не о программировании. Попробуйте http://unix.stackexchange.com/ – mustaccio

+0

@mustaccio, спасибо. Я понял. Я буду спрашивать в unix stackexchange вместо –

ответ

0

дю считается использование диска, а не размер файла.

Различия в том, как файловая система распределяет хранилища для файла, может привести к тому, что использование диска будет отличаться для одного и того же набора файлов.

Некоторые возможные причины, почему использование диска может отличаться, это не исчерпывающий список:

  1. Вы используете другую файловую систему (например, ext4 против Btrfs)
  2. Файловая система настроены по-разному (например, другой размер блока, ведение журнала параметры, сжатие файловой системы) стратегии
  3. Allocation, используемые в файловой системе
  4. разреженный файл может казаться больше, но использует меньший размер дискового
  5. долю жестких ссылок s на диске
+0

, если я использую 'du -bc' (я думаю, что он подсчитывает двоичный размер), то 2 файловые системы дают тот же результат. около 5, нет жестких ссылок. Но спасибо за ответ (я не очень хорошо знаком с файловой системой и связанными с ней знаниями. Я буду google и проверю свои две машины позже. –

+0

@JunchaoGu: -b подсчитывает размер файла, который представляет собой объем данных, который можно прочитать из файл. Вы должны проверить 'man du', он объясняет все, что вам нужно знать о флагах там. –

Смежные вопросы