Você pode usar rsync
para fazer isso, o comando que eu uso é rsync -tr "folder to copy from" "folder to copy to"
por exemplo. rsync -tr /home/me/stuff/* /home/me/otherstuff/
Eu tenho diretório a e diretório b. Eles são grandes. b é quase idêntico a. "quase" significa que 4-5 arquivos são diferentes e não sei quais são. Eu quero copiar b sobre um, mas apenas os arquivos que diferem. estou na festa.
(não, eu não posso simplesmente deletar a e substituí-la por b, porque 1) a é controlado por versão 2) uma cópia completa (ou um mv) levaria muito. Eu quero copiar apenas os arquivos que diferem).
Também é possível fazer isso com o bom e velho cp
:
Obrigado ao srcspider por me lembrar de usar -T
!
cp -ruT old-dir new-dir
Outra boa opção é o Unison ( link ), especialmente se não houver realmente uma "fonte "e um" destino ". Cada diretório é uma raiz e o Unison sincroniza-os e mantém metadados para futuras sincronizações. Ele oferece uma opção de linha de comando e uma GUI que podem ser facilmente programadas via cron também.
Eu o uso para fazer um backup do meu Dropbox para o meu dispositivo NAS local que não pode executar um cliente Dropbox.
Pode ser feito com bom e velho cp, embora com um formato ligeiramente diferente do que foi mencionado acima. Aqui está como eu fiz:
cp -ru --target-directory="destination_path" source_path/*
Você pode diferenciar os dois diretórios.
diff -r dir1 dir2
mostrará a lista de arquivos que são diferentes
Tags cp bash linux file-transfer