2

Существует ли команда unix для копирования содержимого одного каталога в другой, но при этом всегда сохраняются самые новые файлы?

Я имею в виду, имея каталог A и каталог B, мне нужно скопировать содержимое B в A. Если имя файла в каталоге B уже существует в A, сохраните самое новое из них в соответствии с датой его создания.

2 ответа2

3

Вы можете использовать обычный cp с этой опцией:

-u, --update
       copy only when the SOURCE file is newer than the destination file
       or when the destination file is missing

Если в каждом каталоге разбросаны новые файлы, вы можете запустить cp один раз из каждого каталога, копируя только новые файлы поверх старых.

2

Вы можете использовать rsync для синхронизации содержимого двух каталогов. Опция -u/ --update имеет эффект

пропустить файлы, которые новее на приемнике

Таким образом, вы можете использовать rsync -auvh dir1/ dir2/

-a = режим архива. Включает целую загрузку опций, таких как рекурсия.

-v и -h - подробные и удобочитаемые варианты. Не жизненно важно, но полезно посмотреть, что происходит.

Я предлагаю вам сначала выполнить любую команду rsync с параметром —dry-run чтобы вы могли проверить неожиданные результаты.

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