Como posso comparar dois diretórios, sendo um deles um diretório remoto?

7

Eu quero comparar dois diretórios, um é local e o outro está em outra máquina.

Como posso fazer isso? Posso fazer isso com diff ?

    
por Eng Al-Rawabdeh 02.10.2011 / 08:49

5 respostas

0

Eu encontrei uma ferramenta chamada "UNISON". é uma ferramenta muito boa e tem muitas opções.

    
por 09.06.2014 / 11:26
4

Eu posso pensar em duas maneiras aqui ...

  1. Monte seu diretório remoto localmente e, em seguida, use diff como faria em uma máquina local.

  2. Use rsync :

rsync -avz --dry-run remote-user@remote-machine:remote-dir local-dir

Isso mostrará os arquivos que são diferentes, mas não mostrará o diff real. Eu acho que o Unison suporta o diff também, mas eu nunca usei isso e ele não parece estar em desenvolvimento mais.

    
por 02.10.2011 / 09:19
3

Se você quer apenas determinar se eles são idênticos ou não, algo como

cd <directory>
find . -type f | sort | xargs sha1sum | sha1sum

... deve fornecer uma soma de verificação única sobre todo o conteúdo (exceto subdiretórios vazios). Então você pode rodar isso nas duas máquinas e comparar as saídas.

    
por 26.09.2013 / 13:43
1

Observe que usar diff exigirá que todo o conteúdo do diretório remoto seja transferido pela rede, o que pode se tornar proibitivamente lento se houver arquivos grandes ou grandes números de arquivos envolvidos.

Minha recomendação seria determinar primeiro quais arquivos diferem entre as duas máquinas (usando rsync -n --delete ( -n faz com que ele apenas lhe diga o que faria, mas sem fazê-lo; --delete dirá a você) se houver algum arquivo no destino, mas não na origem, porque ele desejará excluí-lo) ou comparando md5sum s. Se você está procurando como eles são diferentes (em vez disso do que apenas se forem diferentes), eu usaria diff apenas nesses arquivos específicos para ver quais são as diferenças.

    
por 02.10.2011 / 13:22
0

Sim, você pode fazer isso com o diff! Aplicativos de espaço do usuário como "diff" não sabem (e não precisam saber) se um diretório é local ou remoto.

    
por 02.10.2011 / 09:03