Скажем, у меня есть две папки с различным содержанием, foo
и bar
. Как я могу слиться bar
с foo
тем, чтобы:
- Файлы в
foo
этомbar
нетронуты. - Файлы, в
bar
которых нетfoo
, сейчас находятся вfoo
. - Файлы в этом файле
foo
такжеbar
были заменены файлами изbar
.
unix
shell
file-management
Svish
источник
источник
cp -R /path/to/bar /path/to/foo
это будет создать каталогbar
внутриfoo
. Тонкий момент.bar
(т.е. с именами, начинающимися с точки -.
) из-за того, как работает глобализация оболочки.У меня был очень похожей необходимость: слияние
bar
вfoo
но файлы , которые находятся вbar
не должен перезаписи согласующих файловfoo
. В таком случае:источник
Попробуй это :
$ cp -r
-u
-v /path/to/foo/* /path/to/bar/
Из
man cp
-u, --update копировать только в том случае, если файл SOURCE новее, чем целевой файл, или если в конечном файле отсутствуют рекурсивные каталоги
-R, -r, --recursive.
источник
man cp
-> -u, --update: копировать, только если файл SOURCE новее, чем файл назначения, или когда файл назначения отсутствует