Ferramenta de comparação de arquivos e diretórios?

142

Estou procurando algo que compara diretórios e arquivos, como o Beyond Compare, para Windows.

É principalmente para uso de controle de código-fonte, mas também preciso usá-lo para implantação.

    
por DevelopingChris 10.11.2010 / 13:15

19 respostas

168

Meld

O Meld é uma ferramenta que pode comparar e mesclar arquivos e diretórios. É uma interface gráfica analógica para o padrão diff e patch comando ferramentas de linha. (Veja man diff e man patch para mais detalhes sobre eles)

Além disso, muitos sistemas de controle de origem (como bzr ou git ) tem a capacidade de criar diffs entre as versões.

    
por dv3500ea 10.11.2010 / 13:28
42

Diff é seu amigo.

diff -ur path1 path2

Isso compara todos os arquivos comuns entre o caminho1 e o caminho2.

Se você alterar -ur para -urN , isso também mostrará o conteúdo dos arquivos que estão presentes apenas em um dos caminhos.

    
por Richm 04.10.2011 / 19:43
21

'Beyond Compare' também está disponível para Linux.

Verifique o URL de download: link

    
por aneeshep 10.11.2010 / 13:23
13

Use o comando diff :

diff -u file1 file2

diff -u seleciona um formato com algumas linhas de contexto. Um diff file1 file2 simples lista apenas as linhas diferentes. Existem muitas outras opções para controlar o formato de saída, ignorar as diferenças somente de espaços em branco, etc.

Se você quiser gravar a saída em um arquivo, redirecione-a:

diff -u file1 file2 >file1-file2.diff
    
por Gilles 07.10.2013 / 22:05
12

Comandante do Gnome

A interface pode não ser muito sexy, mas é extremamente poderosa!

E se você estivesse acostumado com outro * Comandante (como o Norton, ou os gostos), você não estará perdido.

    
por Huygens 10.11.2010 / 14:09
9

Ferramentas de linha de comando

Inspirado por esta entrada de blog .

diff

Listando arquivos diferentes:

diff -qr folder1 folder2

Listando também conteúdo:

diff -Naur folder1 folder2

rsync

Se os dois diretórios não estiverem na mesma máquina, rsync poderá ser a solução mais fácil. Normalmente, rsync é usado para sincronizar diretórios, mas você pode executá-lo no modo detalhado e seco, de modo que ele só listará arquivos que precisariam ser alterados.

rsync -rvnc --delete folder1 server:/path/to/folder2

Você pode omitir c se quiser comparar arquivos com base em carimbos de data e hora e tamanhos de arquivo para acelerar tudo:

rsync -rvn --delete folder1 server:/path/to/folder2
    
por lumbric 25.12.2011 / 20:22
9

Krusader

O Krusader é uma ferramenta gratuita (disponível no Centro de Software) que mostra o conteúdo da pasta em comparação e você pode sincronizar com várias opções diferentes. Você pode filtrar enquanto sincroniza e compara.

Para comparar o conteúdo do arquivo, basta marcar dois arquivos e selecionar "arquivo" & gt; "compare conteúdo" e eles são comparados em letra a letra. a ferramenta de comparação padrão usada pelo krusader é a ferramenta padrão do KDE " Kompare ". Você pode definir o krusader para usar qualquer outra ferramenta de comparação - como, por exemplo, uma das opções acima.

Esta é a solução mais completa que já encontrei e é muito conveniente. E suporta todas as teclas de função usadas pelo comando midnight (sintaxe do Norton Commander).

    
por piedro 10.11.2010 / 19:39
9

KDiff3

É um front-end gráfico para diferenciar os usuários do KDE (ou se você não se importa em usar aplicativos do Qt).

Há também dirdiff para diretórios.

    
por tinhed 10.11.2010 / 13:59
6

Talvez Meld seja o que você está procurando. Ou aqui são algumas outras alternativas.

    
por sagarchalise 10.11.2010 / 13:23
4

O Unison é uma ferramenta de sincronização de arquivos rápida que usa o algoritmo rsync e permite visualizar as diferenças antes de atualizar entre dois locais, sejam remotos ou locais.

    
por Rog 18.01.2011 / 03:29
4

Aprendi sobre hashdeep há duas semanas. E tem algumas vantagens strongs:

  • Em contraste com meld , funciona bem para pastas muito grandes. Onde meld se torna extremamente lento e a UI não responde (bloqueada), hashdeep apenas trabalha a uma velocidade constante
  • Em contraste com rsync , o hashdeep detecta arquivos movidos - arquivos com o mesmo conteúdo, apenas em um diretório diferente.

A saída detalhada é como:

...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG

hashdeep: Audit failed
   Input files examined: 0
  Known files expecting: 0
          Files matched: 6233
Files partially matched: 0
            Files moved: 3695
        New files found: 19257
  Known files not found: 4713
    
por geekQ 07.05.2013 / 13:50
3

Experimente também o FreeFileSync . Tem uma interface decente, velocidade de comparação aceitável, boa filtragem do resultado da comparação, diferentes formas de sincronia. Ele vem com uma ferramenta de monitoramento de pasta (RealTimeSync) que pode iniciar o FreeFileSync (na verdade, qualquer comando ou script) quando essa pasta específica (ou pastas) ou os arquivos dentro dela forem alterados. Realmente vale a pena tentar.

Mais informações aqui ou aqui , onde você tem um PPA , também

De sua página, os principais recursos:

  

Compare os arquivos (bytewise ou by date) e sincronize-os.

     

Sem limitações: um número arbitrário de arquivos pode ser sincronizado.

     

Suporte a Unicode.

     

Suporte de rede.

     

Suporte interno para nomes de arquivos muito longos (mais de MAX_PATH = 260 caracteres).

     

Banco de dados de sincronização para propagação de arquivos excluídos e detecção de conflitos

     

Suporte para vários pares de pastas com configuração distinta

     

Suporte completo para links simbólicos do Windows / Linux e pontos de junção do Windows.

     

Lean & amp; IU facilmente acessível: altamente otimizada para velocidade e grandes conjuntos de dados.

     

Algoritmos codificados em C ++ completamente.

     

Todos os indicadores de progresso otimizados para desempenho máximo!

     

Crie trabalhos em lote para sincronização automatizada com ou sem GUI.

     

Foco na usabilidade:

     
    
      
        

Apenas a funcionalidade necessária na interface do usuário: sem menus sobrecarregados ou selva de ícones.

                 

Selecione todas as pastas via arrastar & amp; soltar.

                 

A última configuração utilizada e as configurações de tela são salvas automaticamente.

                 

Mantenha e carregue configurações diferentes arrastando & amp; drop, load-button ou commandline.

                 

Clique duas vezes para iniciar o aplicativo externo (por exemplo, mostrar arquivo no Windows Explorer)

                 

Copiar & amp; cole todos os dados da grade como texto

                 

Exclua arquivos supérfluos / temporários diretamente na grade principal.

                 

Clique com o botão direito do mouse no menu de contexto.

                 

Informações abrangentes sobre status e relatórios de erros

                 

Classifique as listas de arquivos por nome, tamanho ou data.

      
    
  
     

Suporte para arquivos maiores que 4 GB.

     

Opção para mover arquivos para a Lixeira, em vez de excluí-los / substituí-los.

     

Ignore diretórios "\ RECYCLER" e "\ System Volume Information" com o filtro padrão. (Somente Windows)

     

Versões localizadas estão disponíveis para muitos idiomas.

     

Excluir antes da cópia: evite a falta de espaço no disco para grandes trabalhos de sincronização.

     

Funcionalidade de filtro para incluir / excluir arquivos da sincronização (sem exigir uma nova comparação!).

     

Inclua / exclua arquivos específicos da sincronização temporariamente.

     

Lide automaticamente com as alterações do horário de verão nos volumes FAT / FAT32.

     

Versão portátil disponível (selecionável via instalador).

     

Versão nativa de 64 bits.

     

Verifique se há atualizações de dentro do FreeFileSync automaticamente.

     

Copie os arquivos bloqueados usando o Serviço de Cópias de Sombra de Volume do Windows. (Somente Windows)

     

Crie backups regulares com macros% time%,% date% nos nomes de diretório

     

Copie os horários de criação / acesso / modificação de arquivos e pastas ao sincronizar

     

Estratégia avançada de bloqueio para permitir vários processos de sincronização (por exemplo, vários escritores, o mesmo compartilhamento de rede)

Eu adicionaria ele para gerenciar arquivos excluídos, movendo-os para a Lixeira ou para uma pasta especificada pelo usuário. Para apontar uma desvantagem: a documentação do programa se concentra bastante no Windows, menos no Linux. Mas faz o seu trabalho bem.

    
por luri 18.01.2011 / 02:18
3

Você pode usar difusa:

sudo apt-get install diffuse
diffuse file1 file2
    
por metdos 18.12.2012 / 09:50
3

Uma boa maneira de fazer essa comparação é usar " find " com " md5sum " e, em seguida, um " diff ".

Exemplo:

Use find para listar todos os arquivos no diretório e, em seguida, calcule o hash md5 para cada arquivo e canalize-o para um arquivo:

$find /dir1/ -type f -exec md5sum {} \; > dir1.txt

Faça o mesmo procedimento no outro diretório:

$find /dir2/ -type f -exec md5sum {} \; > dir2.txt

Em seguida, compare o resultado com dois arquivos "diff":

$diff dir1.txt dir2.txt

Esta estratégia é muito útil quando os dois diretórios a serem comparados não estão na mesma máquina e você precisa ter certeza de que os arquivos são iguais em ambos os diretórios.

Outra boa maneira de fazer o trabalho é usar o git

git diff --no-index dir1/ dir2/

Atenciosamente!

    
por Adail Junior 09.01.2017 / 21:09
2

Você pode tentar fundir .

São os repositórios e fornece uma GUI para comparação de arquivos ou pastas.

    
por Pavlos G. 04.10.2011 / 18:58
1

O Eclipse IDE é um pouco pesado se você está apenas fazendo comparações, mas faz um bom trabalho, entre outras coisas. Você pode selecionar 2 projetos, caminhos ou arquivos e compará-los entre si, além de sincronizar com os servidores de controle de origem.

    
por Rog 18.01.2011 / 03:25
1

IMHO FreeFileSync é muito bom e mais útil do que o Meld. É rápido e estável, pode fazer sincronizações costomizáveis e também exportar o resultado da comparação em um arquivo csv.

Link do Lanchpad

    
por Reza 20.01.2014 / 13:53
0

Plataforma cruzada, fácil, sem problemas & amp; recursos de salvamento de perfil tornam o Jfilesync minha melhor escolha

    
por nightcrawler 23.07.2014 / 21:51
0

Para comparar arquivos

File_1.txt
Line1
Line2

File_2.txt
Line1
Line 2

Você pode usar o comando cmp :

cmp -b "File_1.txt" "File_2.txt"

saída seria

a b differ: byte 11, line 2 is  62 2  40  

Para comparar dirs (sua necessidade):

você pode usar o comando diff :

diff -r --brief dir1 dir2

man diff

  -r, --recursive
              recursively compare any subdirectories found

   -q, --brief
          report only when files differ
    
por Maythux 17.06.2015 / 13:05