31

Как мне скопировать файл в Linux, только если копируемый файл новее, чем версия в месте назначения?

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

4 ответа4

49

Использование опции обновления (-u) с cp должно сделать это за вас.

http://beginnerlinuxtutorial.com/help-tutorial/basic-linux-commands/cp-linux-copy-command/

13

Используйте rsync

rsync --progress -r -u /from/one/* /to/another/directory
2

Вы не говорите, какую оболочку вы используете, поэтому я предполагаю, что ksh:

if [[ file1 -nt file2 ]]; then cp file1 file2; fi
2

yes|cp -ruv /from/* /to/.
да - ответь да на все вопросы.
r - рекурсивный
и - обновить
v - Прогресс

работает как xargs.

Я не знаю, как объяснить академически.

Как заставить cp перезаписать без подтверждения

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