md5sum определенных файлов в двух разных папках в bash

Я хочу скопировать файлы из папки A в папку B, где некоторые из скопированных файлов записываются поверх существующих файлов в папке B. папка B также содержит файлы, которых нет в папке A. После операции я хочу сравнить md5sum всех скопированных файлов в папках A и B.

Как я могу создать список файлов в папке A и передать его md5sum в папке B? Я старался:

 ls -1 | md5sum

но 'ls -1' не является списком разных файлов для md5sum...

Большое спасибо


person rize    schedule 04.06.2014    source источник
comment
Пожалуйста, больше описаний?   -  person konsolebox    schedule 04.06.2014


Ответы (2)


Я думаю, вы хотите сгенерировать md5sum файлов в папке A и эквивалентных файлов в папке B:

cd folderA
md5sum *
cd folderB
( cd folderA && ls ) | xargs md5sum

Однако вместо этого вы можете посмотреть на diff. И, может быть, rsync за копирование.

person Douglas Leeder    schedule 04.06.2014
comment
Что я действительно делаю, так это копирую файлы по сетевому соединению в папку B, и я хочу посмотреть, точно ли измененные файлы такие же, как в папке A, поэтому копирование по сети прошло нормально. На самом деле уже использую rsync - person rize; 04.06.2014
comment
Если вы делаете это по сети, возможно, вы захотите сделать контрольную сумму папки A на исходной машине, иначе вы просто сравниваете две копии по сети. - person Douglas Leeder; 04.06.2014
comment
Да, это то, что я хочу сделать: сравнить папку A на исходной машине и папку B на удаленной машине после того, как rsync выполнит свою работу. Поэтому я хотел, чтобы список файлов папки A на исходной машине сохранялся в переменной, а затем запускался md5sum для этого списка файлов на удаленной машине в папке B. - person rize; 04.06.2014
comment
«xargs» — это именно то, что я искал. - person rize; 04.06.2014

Должно быть наоборот: ls | md5sum.

Но это будет сравнивать только имена файлов. Это то, чего вы действительно хотите?

Если вам нужны суммы всего содержимого всех файлов, сделайте, например, cat * | md5sum.

person pacholik    schedule 04.06.2014