Ответ 1
У меня была такая же проблема - много советов о том, как это сделать наполовину. Итак, вот что я сделал, чтобы получить как исправления, так и распаковку:
Чтобы создать файл исправления:
-
Поместите копии обоих каталогов в say/tmp, чтобы мы могли создать патч файл, или если храбрый, получите их бок о бок - в одном каталоге.
-
Запустите соответствующий diff для двух каталогов, старых и новых:
diff -ruN orig/ new/ > file.patch # -r == recursive, so do subdirectories # -u == unified style, if your system lacks it or if recipient # may not have it, use "-c" # -N == treat absent files as empty
Если у человека есть каталог orig/, он может воссоздать новый, запустив патч.
Чтобы создать новую папку из старой папки и файла исправления:
-
Переместите файл исправления в каталог, в котором существует каталог orig/folder
-
Эта папка будет сбита, поэтому держите ее где-то в резервной копии, или используйте копию.
patch -s -p0 < file.patch # -s == silent except errors # -p0 == needed to find the proper folder
-
В этот момент папка orig/содержит новый/контент, но все же имеет свое старое имя, поэтому:
mv orig/ new/ # if the folder names are different