Замена файлов в другом каталоге
У меня есть две директории, структурированные следующим образом:
dir1/a/file1
dir1/a/b/file2
dir1/a/c/d/file3
а также
dir2/a/file4
dir2/a/b/file5
dir2/a/c/d/file6
Я хочу скопировать все файлы в подкаталогах в dir1 в dir2, но сохранить файлы, которые в настоящее время находятся в dir2, другими словами, я хочу, чтобы результирующая структура была похожа на:
dir2/a/file1
dir2/a/file4
dir2/a/b/file2
dir2/a/b/file5
dir2/a/c/d/file3
dir2/a/c/d/file6
Есть ли простой способ сделать это с помощью Bash?
1 ответ
Решение
Вы могли бы начать с
cd dir1
cp -rpuv * ../dir2/
До:
$ find dir2/
dir2/
dir2/a
dir2/a/file4
dir2/a/c
dir2/a/c/d
dir2/a/c/d/file6
dir2/a/b
dir2/a/b/file5
После:
$ find dir2/
dir2/
dir2/a
dir2/a/file1
dir2/a/file4
dir2/a/c
dir2/a/c/d
dir2/a/c/d/file3
dir2/a/c/d/file6
dir2/a/b
dir2/a/b/file2
dir2/a/b/file5
Обратите внимание, что -p
сохраняет разрешения, -v
сделать копию многословной и -u
только обновляет файлы (делая то, что предлагает вопрос: сохраняйте файлы уже в dir2)