Unix: как объединить два каталога

скажем, у меня есть две папки с различным содержимым, foo и bar. Как я могу объединить bar на foo Так что:

  • файлы foo, не bar не трогают.
  • файлы bar, не foo сейчас foo.
  • файлы foo, которые также находятся в bar были заменены на файлы bar.
17
задан coneslayer 2011-02-07 14:54:20
источник

3 ответов

если я читаю ваши требования правильно, нет файлов, которые идут от foo до bar. Похоже, вы можете просто скопировать содержимое bar до foo, позволяя ему перезаписывать файлы по мере необходимости (его поведение по умолчанию).

$ cp -R /path/to/bar/* /path/to/foo
24
отвечен coneslayer 2011-02-07 15:16:06
источник

у меня была очень похожая потребность: merge bar на foo но файлы, которые находятся в bar не должен перезаписать соответствующие файлы в foo. В этом случае:

$ cp -R -n /path/to/bar/* /path/to/foo/
9
отвечен Joel Aufrecht 2013-04-29 21:41:17
источник

попробуйте это :

$ cp -r-u-v /path/to/foo/* /path/to/bar/

С man cp

- u, --update копировать только в том случае, если исходный файл новее конечного файла или если конечный файл отсутствует

- R, - r, --recursive копировать каталоги рекурсивно

1
отвечен drew7721 2017-06-16 20:56:46
источник

Другие вопросы shell unix file-management

X