Проверьте правильность скопированных файлов

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

[ f1] не является широко известным местом, но он добавляется в PATH by bash, поэтому он выглядит довольно стандартным для меня.

13
задан 28 April 2011 в 14:33

42 ответа

В случае «если все было скопировано правильно», я использую модифицированный cp (или mv), который включает контрольные суммы (необязательно, хранящиеся в xattr, поэтому он должен быть рассчитан только один раз для источника) http: / /sourceforge.net/projects/crcsum/

0
ответ дан 6 August 2018 в 03:45

Если приложения GUI, предложенные в Инструменте сравнения файлов и каталогов? , не делайте этого для вас, попробуйте diff -rq / path / to / one / path / to / other , чтобы спокойно перезаписывать оба каталога, регистрируя только различия с экраном.

13
ответ дан 6 August 2018 в 03:45

В случае «если все было скопировано правильно», я использую модифицированный cp (или mv), который включает контрольные суммы (необязательно, хранящиеся в xattr, поэтому он должен быть рассчитан только один раз для источника) http: / /sourceforge.net/projects/crcsum/

0
ответ дан 7 August 2018 в 21:40

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

Если вам нужно что-то простое и быстрое (это не сработает в очень сложных сценариях), вы можете использовать Meld

  sudo apt-get  установить meld  
3
ответ дан 7 August 2018 в 21:40

Если приложения GUI, предложенные в Инструменте сравнения файлов и каталогов? , не делайте этого для вас, попробуйте diff -rq / path / to / one / path / to / other , чтобы спокойно перезаписывать оба каталога, регистрируя только различия с экраном.

13
ответ дан 7 August 2018 в 21:40

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

Если вам нужно что-то простое и быстрое (это не сработает в очень сложных сценариях), вы можете использовать Meld

  sudo apt-get  установить meld  
3
ответ дан 10 August 2018 в 09:54

В случае «если все было скопировано правильно», я использую модифицированный cp (или mv), который включает контрольные суммы (необязательно, хранящиеся в xattr, поэтому он должен быть рассчитан только один раз для источника) http: / /sourceforge.net/projects/crcsum/

0
ответ дан 10 August 2018 в 09:54

Если приложения GUI, предложенные в Инструменте сравнения файлов и каталогов? , не делайте этого для вас, попробуйте diff -rq / path / to / one / path / to / other , чтобы спокойно перезаписывать оба каталога, регистрируя только различия с экраном.

13
ответ дан 10 August 2018 в 09:54

В случае «если все было скопировано правильно», я использую модифицированный cp (или mv), который включает контрольные суммы (необязательно, хранящиеся в xattr, поэтому он должен быть рассчитан только один раз для источника) http: / /sourceforge.net/projects/crcsum/

0
ответ дан 13 August 2018 в 16:12
  • 1
    Хотя ваш ответ на 100% правильный, это также практически невозможно для начинающего пользователя. Поэтому, пожалуйста, отредактируйте свой ответ и включите инструкции по загрузке, компиляции, установке и удалению crccp в вашем ответе! ;-) Вы всегда можете оставить ссылку в нижней части своего ответа в качестве источника для своего материала ... – Fabby 5 February 2015 в 18:07

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

Если вам нужно что-то простое и быстрое (это не сработает в очень сложных сценариях), вы можете использовать Meld

  sudo apt-get  установить meld  
3
ответ дан 13 August 2018 в 16:12

Если приложения GUI, предложенные в Инструменте сравнения файлов и каталогов? , не делайте этого для вас, попробуйте diff -rq / path / to / one / path / to / other , чтобы спокойно перезаписывать оба каталога, регистрируя только различия с экраном.

13
ответ дан 13 August 2018 в 16:12
  • 1
    rsync, безусловно, является инструментом для этой работы, но он не сравнивает и не копирует различия, как таковые. Он сравнивает файлы с использованием размеров и хэшей. – Justin Force 29 April 2011 в 00:18
  • 2
    @JustinForce Использование размера? Конечно, разный размер гарантирует, что файл не совсем то же самое, но rsync очень универсален, он может опционально доверять метаданным (например, время), чтобы не перечитывать все файлы. При копировании через сеть он вычисляет скользящий хеш, чтобы точно определить общие части, чтобы избежать их переноса, но на локальном диске по умолчанию хэши не играют эту роль (если они используются вообще). Вы даже можете попросить его уповать на то, что у более короткого адресата уже есть правильный контент и просто нужно добавить, хотя давайте останемся на тему. – Stéphane Gourichon 8 February 2016 в 01:03

Это выглядит как идеальная задача для rsync . Rsync сравнивает и копирует diff.

Утилита rsync впервые появилась в моем сознании, когда я увидел ваш вопрос. Выполнение чего-то вроде ниже может быстро показать, какие файлы находятся в каталоге a , но не в b :

  $ rsync -rcnv a / * b  / -r будет возвращаться в директории -c будет сравнивать на основе контрольной суммы файла -n будет запускать его как «сухой запуск» и не вносить никаких изменений, а просто распечатать файлы, которые будут обновлены -v будет печатать вывод в stdout  verbosely  

Это хороший вариант, потому что вы также можете сравнить содержимое файлов, чтобы убедиться, что они совпадают. Дельта-алгоритм rsync оптимизирован для этого типа использования. Затем, если вы хотите, чтобы b соответствовали содержимому a , вы можете просто удалить опцию -n , чтобы выполнить фактическую синхронизацию.

Некоторые связанные вопросы:

13
ответ дан 15 August 2018 в 22:58
  • 1
    rsync, безусловно, является инструментом для этой работы, но он не сравнивает и не копирует различия, как таковые. Он сравнивает файлы с использованием размеров и хэшей. – Justin Force 29 April 2011 в 00:18
  • 2
    @JustinForce Использование размера? Конечно, разный размер гарантирует, что файл не совсем то же самое, но rsync очень универсален, он может опционально доверять метаданным (например, время), чтобы не перечитывать все файлы. При копировании через сеть он вычисляет скользящий хеш, чтобы точно определить общие части, чтобы избежать их переноса, но на локальном диске по умолчанию хэши не играют эту роль (если они используются вообще). Вы даже можете попросить его уповать на то, что у более короткого адресата уже есть правильный контент и просто нужно добавить, хотя давайте останемся на тему. – Stéphane Gourichon 8 February 2016 в 01:03

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

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