Каталог A и B имеет много подкаталогов с почти одинаковым содержимым. Каталог B может иметь более новые файлы и некоторые подкаталоги, которых нет в каталоге A. Когда файлы в каталоге B более новые, я хочу, чтобы те перезаписывали файлы в каталоге A. Когда B содержит подкаталоги, которых нет у A, я хочу, чтобы каталоги B были объединены с результатами. Итак, я предполагаю, что все, что я говорю, - это объединение двух каталогов с помощью команд, доступных в Solaris и OSX. Я работаю локально на OSX, но нужно будет выполнить ту же процедуру на коробке Solaris. Я нашел пару методов. Первый подход заключается в использовании tar:
cd A tar -cvf content.tar * cp content.tar ../B tar -uvf content.tar * cp content.tar ../ mv A A_backup; mv B B_backup tar -xvf content.tar
(Вот это да! что кажется грязным)
Другой подход:
cd B tar cf - . |(cd ../A; tar xvf -)
(Это объединяет все в A)
Проблема, с которой я сталкиваюсь, может быть связана с уверенностью. Я не знаком с методами и не могу понять, что происходит. Я не вижу, какие файлы были перезаписаны или какие папки или файлы существовали в B, которых не было в A.
Есть ли способ лучше?