BASH-скрипт для сравнения двух каталогов и копирования содержимого в третий каталог? - PullRequest
1 голос
/ 18 января 2010

В основном я пытаюсь скопировать содержимое обоих каталогов dir1 и dir2 (исключая подкаталоги) в dir3. Предостережение заключается в том, что если файл существует и в dir1, и в dir2, мне нужно скопировать более новый файл. Допустим, более новый файл существует в dir2.

У меня было:

find dir1 -type f -exec cp {} dir3 \;
find dir2 -type f -exec cp -u {} dir3 \;

Выполнение этого способа приводит к этой проблеме: поскольку файлы из dir1 копируются до dir2, все файлы из dir1 (которые теперь находятся в dir3) считаются более новыми и не будут перезаписываться.

Я думаю, что вам нужно обработать файл в dir1, проверить, существует ли он в dir2, а затем проверить, что новее. Однако я не уверен, как это сделать, кроме того, что вы можете использовать «-nt». Я думаю, что я просто поступаю об этом неправильно.

1 Ответ

3 голосов
/ 18 января 2010
cp -vfudp dir1/* dir3/
cp -vfudp dir2/* dir3/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...