В основном я пытаюсь скопировать содержимое обоих каталогов 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». Я думаю, что я просто поступаю об этом неправильно.