Подтвердить что ты не робот

Перезаписать файл при копировании IF-контента из них не одинаково

У меня есть много файлов с одной стороны (A) и много других файлов в другом месте (B)

Я копирую A в B, есть много файлов одинаковые, но контент может быть другим!

Обычно я использовал mc (Midnight Commander), чтобы сделать это, и выбрал "Overwrite if different size". Но есть ситуация, когда размер один и тот же, но контент отличается. В этом случае mc сохраняет файл в B и не перезаписывает его.

В диалоговом окне перезаписи mc есть работа "Обновление", я не знаю, что она делает? В помощи нет такой информации, может быть, это решение?

Итак, я ищу решение, которое может помочь мне скопировать все файлы с A на B и перезаписать файлы в B, если они существуют, и содержимое отличается от A.

Если файл в месте "B" существует (одно и то же имя), а содержимое отличается, оно должно быть перезаписано файлом из места "A" каждый раз.

Знаете ли вы какое-либо решение?

4b9b3361

Ответ 1

Вы пробовали командную строку:

cp -ru A/* B/

Необходимо скопировать рекурсивно все измененные файлы (более поздняя временная метка) из каталога A в каталог B.

Вы также можете использовать -a вместо -r в командной строке, в зависимости от того, что вы хотите сделать. См. Справочную страницу cp.

Ответ 2

Я бы использовал rsync, так как это не будет полагаться на дату файла, но на самом деле проверить, изменилось ли содержимое файла. Например:

#> rsync -cr <directory to copy FROM> <directory to copy TO>

Rsync копирует файлы на или с удаленного хоста или локально на текущий хост (он не поддерживает копирование файлов между двумя удаленными хостами).

-c, --checksum    skip based on checksum, not mod-time & size
-r, --recursive   recurse into directories

Подробнее см. man rsync.

Ответ 3

Возможно, вы захотите сохранить какой-то "индексный" файл, который содержит хэш SHA-1 файлов, который вы создаете, когда пишете их. Затем вы можете вычислить хеш-источник и сравнить его с хешем "назначения" из индексного файла. Это будет работать, только если этот процесс является единственным способом записи файлов в пункт назначения.