Gostaria de copiar um conjunto de arquivos do diretório A para o diretório B, com a ressalva de que, se um arquivo no diretório A for idêntico a um arquivo no diretório B, esse arquivo não deverá ser copiado (e, portanto, seu tempo de modificação não deverá ser Atualizada). Existe uma maneira de fazer isso com as ferramentas existentes, sem escrever meu próprio script para fazer isso?
Para elaborar um pouco do meu caso de uso: estou gerando automaticamente vários .carquivos em um diretório temporário (por um método que precisa gerar todos eles incondicionalmente) e, quando eu os gerar novamente, gostaria de copiar apenas os que foram alterados para o diretório de origem real, deixando os inalterados intocados (com seus antigos tempos de criação), para que makesaibam que não é necessário recompilá-los. ( .cPorém, nem todos os arquivos gerados são arquivos, portanto, preciso fazer comparações binárias em vez de comparações de texto.)
(Como uma observação: isso surgiu da pergunta que fiz em https://stackoverflow.com/questions/8981552/speeding-up-file-comparions-with-cmp-on-cygwin/8981762#8981762 , onde estava tentando para acelerar o arquivo de script que eu estava usando para fazer essa operação, mas me ocorre que eu realmente deveria perguntar se há uma maneira melhor de fazer isso do que escrever meu próprio script - especialmente porque existe uma maneira simples de fazer isso em um shell O script invocará algo como cmpem cada par de arquivos e iniciar todos esses processos leva muito tempo.)
rsync -avncou o longo caminho rsync --archive --verbose --dry-run --checksum.
diff -qr dirA dirBpara ver quais arquivos são exclusivosdirAedirB, respectivamente.