É meio engraçado, existem várias maneiras pelas quais as ferramentas de linha de comando do Linux são muito superiores às do Windows, mas uma coisa que eu não encontrei equivalente é a robocópia . Robocopy é muito mais versátil do que cp
, e não consigo descobrir como fazer o que quero com as ferramentas do Linux.
Um caso de uso específico é que eu tenho dois diretórios com arquivos semelhantes, mas um possui arquivos de origem mais novos e um possui arquivos de conteúdo que o outro diretório não possui e possivelmente arquivos de origem mais novos (para um site). Quero copiar os arquivos desse último diretório para o anterior, adicionando novos arquivos de conteúdo e outros, mas não substituindo os arquivos mais recentes no diretório de destino.
Tentei descobrir como fazer isso no Linux por talvez meia hora, decidi que provavelmente teria que aprender scripts bash ou algo para fazer o que queria e depois percebi que poderia usar apenas a robocópia. Eu também tinha alguns outros requisitos. Eu estava basicamente convertendo um site Python (Django) de um repositório SVN para um repositório Git, e queria ter certeza de que não havia alterações não confirmadas no SVN. No entanto, eu queria excluir condicionalmente os .svn
diretórios e os .pyc
arquivos Python compilados. O seguinte comando robocopy faz exatamente o que eu quero:
robocopy source destination /XO /E /XD .svn /XF *.pyc
Existe algum equivalente ao Robocopy no Linux? Examinei rsync
brevemente, mas parecia que eu teria que configurar um servidor rsync antes de tentar sincronizar as pastas.