Я бы сделал фактическую копию с
rsync --archive --delete "fromdir/" "todir/"
Это будет более эффективно, чем использование cp , поскольку rsync копирует только файлы, которые были изменены, и даже тогда копирует только само изменение, а не весь файл.
Если вы предпочитаете, чтобы он не удалял файлы из todir , которые были удалены из fromdir , вы просто пропускаете опцию --delete .
Опция --archive основном говорит о том, что она сохраняет состояние файлов и их содержимое. Обратите внимание, что если у вас есть какие-либо символические ссылки в dir1 , это скопирует сами ссылки , а не файлы, на которые они ссылаются. Использование этого флага с rsync аналогично использованию cp -a .
Убедитесь, что вы используете закрывающую косую черту в fromdir/: это говорит rsync копировать содержимое этого каталога, а не сам каталог. Другими словами, если вы пропустите финал / , вы получите
todir/
todir/stuff
todir/fromdir/
todir/fromdir/morestuff
скорее, чем
todir/
todir/morestuff