Это не проблема, а мое любопытство по поводу другого поведения 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 ответ1

1

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .