У меня есть каталог A с 1000 подкаталогами (000-999), каждый из которых содержит 3500 .jpg файлов. Я написал PHP-скрипт, который копировал каждый из этих файлов в другой каталог B в точно такой же структуре, а именно в 1000 подкаталогов, каждый из которых содержал 3500 файлов .jpg, за исключением:

  1. Файлы .jpg переименовываются в новые имена
  2. в то время как подкаталоги не переименованы, но теперь они содержат файлы, отличные от того, что они делают в каталоге

Этот скрипт работал около 20 часов, и когда он наконец закончился, я запустил:

du -sb *

В их родительском каталоге, чтобы получить видимые размеры A и B. Интересно вот что пришло:

74778240380   A
74809644412   B

Затем я запустил еще один PHP-скрипт по всему B, и оказалось, что у него точно такое же количество файлов, что и у A. Теперь я в растерянности.

Почему результаты du -sb отличаются? Любой другой способ проверить, что процесс копирования был успешным и что B является идеальным дублированием A?

2 ответа2

2

Вы говорите, что скопировали файлы JPEG с новыми именами.  Если новые имена существенно длиннее старых, то новые каталоги (подкаталоги «B») будут больше, чем старые каталоги (подкаталоги «A»).  (Да, каталоги занимают место, и du считает это пространство.)  Ваш размер дельта (74809644412 - 74778240380) составляет 31404032, что составляет примерно 1000 × 31404.  Это согласуется с тем, что каждое из 1000 подкаталогов увеличивается на 31404 байта (в среднем).  Если бы каждое из 3500 имен файлов JPEG получало в среднем на девять символов больше, это было бы так.

-1

Используйте команду diff:

diff -qr A B

Со страницы -qr дает

   -q     Report  only  whether  the  files differ, not the details of the
      differences.

   -r     When comparing directories, recursively compare any  subdirecto-
      ries found.

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