Мне необходимо:

  1. Скопируйте все папки дерева (со всеми файлами, включая скрытые) в /sourcefolder/* сохранением пользовательских привилегий в /destfolder/

  2. Если существует конфликт с файлом (файл с таким же именем существует в destfolder), то

    • переименуйте файл в destfolder со стандартным правилом, например, добавьте "старый" префикс к имени файла (readme.txt станет oldreadme.txt)
    • скопировать конфликтующий файл из источника в место назначения

Конфликты между папками должны быть прозрачными - если один и тот же каталог существует и в исходной папке, и в папке назначения, сохраните его и рекурсивно скопируйте его содержимое в соответствии с приведенными выше правилами.

Мне также нужен отчет .txt, который описывает все файлы / папки, добавленные в destfolder и файлы, которые были переименованы.

Как я могу сделать это?

1 ответ1

1

Rsync, вероятно, то, что вы хотите.

Попробуйте что-то вроде этого от имени root:

rsync --backup --suffix = old --verbose --archive /sourcefolder / / destfolder /

Смотрите "man rsync" для деталей опций.

Вывод (надеюсь) подойдет для вашего текстового отчета. Так что запустите команду с этим в конце:

> report.txt

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