Árvore de diretórios de mesclagem avançada com cp no Linux

0

Eu preciso:

  1. Copie todas as pastas de uma árvore (com todos os arquivos, incluindo ocultos) em /sourcefolder/* preservando os privilégios de usuário para /destfolder/

  2. Se houver um conflito com um arquivo (um arquivo com o mesmo nome existe em destfolder ), então

    • renomeie o arquivo na pasta de destino com uma regra padrão, como adicionar o prefixo "antigo" ao nome do arquivo (readme.txt se tornará o arquivo oldreadme.txt)
    • copie o arquivo em conflito da origem para o destino

Conflitos entre pastas devem ser transparentes - se o mesmo diretório existir tanto na pasta de origem quanto na pasta de destino, preserve-o e copie recursivamente seu conteúdo de acordo com as regras acima.

Também preciso de um relatório .txt que descreva todos os arquivos / pastas adicionados à pasta de destino e os arquivos que foram renomeados.

Como posso conseguir isso?

    
por mtt 14.10.2012 / 22:29

1 resposta

1

rsync é provavelmente o que você quer.

Tente algo assim como root:

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

Veja "man rsync" para detalhes das opções.

A saída será (espero) adequada para o seu relatório de texto. Então, execute o comando com isso no final:

> report.txt

    
por 16.10.2012 / 14:28