Я бы сделал фактическую копию с
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