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

143

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

171

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 epatch comandoferramentasdelinha.(Veja man diff e man patch para mais detalhes sobre eles)

Alémdisso,muitossistemasdecontroledeorigem(comobzr 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

Ainterfacepodenãosermuitosexy,maséextremamentepoderosa!

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
10

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. Geralmente, 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.

Paracompararoconteúdodoarquivo,bastamarcardoisarquivoseselecionar"arquivo" > "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

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
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:

% bl0ck_qu0te%              

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
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