cp -r перезаписать

Это не проблема, а мое любопытство по поводу другого поведения cp -r. Это на последней версии Ubuntu. У меня есть устаревшая копия в каталоге с несколькими подкаталогами. Я хотел бы обновить устаревшую копию, просто переписав каталог на новый. Добавляются новые файлы и тот же файл просто перезаписывается.

Итак, сначала я сделал:

$cp -r <path>/curr_dir <path>/destination_dir 

Добавлены новые файлы в curr_dir, но файлы с именем same_name не обновляются, а?

Но если я:

$cd <path>/curr_dir
$cp -r * <path>/destination_dir/

Затем новые файлы добавляются, а устаревшие файлы перезаписываются.

Почему эта разница? Я проверил мой.bashrc и мой.profile и не вижу какого-либо специального псевдонима команды cp.

Конечно, я что-то упустил. Есть комментарии, мысли?

Спасибо

1 ответ

Решение

Использование cp в вашем случае не совсем то, что вы хотите: он не будет удалять файлы, которых там больше нет. Что вы хотите rsync:

rsync -a --delete /source/directory/ /destination/directory/

Обратите внимание на конечные косые черты, они имеют значение.

Добавить -v возможность увидеть прогресс, и если вы хотите проверить, добавьте --dry-run вариант также.

Другие вопросы по тегам