it-swarm-pt.tech

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

Eu estou procurando por algo que irá comparar diretórios e arquivos como o Beyond Compare faz para windows.

É principalmente para uso de controle de origem, mas eu preciso usá-lo para implantação também.

146
DevelopingChris

Meldinstall meld

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

enter image description here

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

174
dv3500ea

Diff é seu amigo.

diff -ur path1 path2

Isso irá comparar todos os arquivos comuns entre path1 e path2.

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

43
Richm

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

Verifique o URL de download: http://www.scootersoftware.com/download.php

21
aneeshep

Use o comando diff :

diff -u file1 file2

diff -u seleciona um formato com algumas linhas de contexto. Um simples diff file1 file2 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-o:

diff -u file1 file2 >file1-file2.diff
13
Gilles

Comandante do Gnomo install Gnome Commander

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

alt text

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

12
Huygens

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, portanto, 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 registros de data e hora e tamanhos de arquivo para acelerar tudo:

rsync -rvn --delete folder1 server:/path/to/folder2
10
lumbric

KDiffinstall kdiff3

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

kdiff3

Há também dirdiffinstall dirdiff para diretórios.

9
tinhed

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

Krusader

Para comparar o conteúdo do arquivo, basta marcar dois arquivos, selecionar "arquivo"> ​​"comparar conteúdo" e eles serão comparados 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).

9
piedro

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

6
sagarchalise

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

4
Rog

Uma boa maneira de fazer essa comparação é usar "find" com "md5sum", então 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

Então compare o resultado dois arquivos com "diff":

$diff dir1.txt dir2.txt

Essa 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 nos dois diretórios.

Outra boa maneira de fazer o trabalho é usar git

git diff --no-index dir1/ dir2/

Cumprimentos!

4
Adail Junior

Eu aprendi sobre hashdeep = duas semanas atrás. E tem algumas vantagens fortes:

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

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

Tente também 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 pastas (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 sobre isso 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 Unicode.

Suporte de rede.

Suporte embutido 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.

Interface do usuário enxuta e de fácil acesso: altamente otimizada para velocidade e grandes conjuntos de dados.

Algoritmos codificados em C++ completamente.

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

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

Concentre-se na usabilidade:

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

Selecione todas as pastas por meio de arrastar e soltar.

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

Manter e carregar diferentes configurações arrastando e soltando, botão de carga ou linha de comando.

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

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

Ordenar 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 vários 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!).

Incluir/excluir arquivos específicos da sincronização temporariamente.

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

Copiar 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 gravadores, o mesmo compartilhamento de rede)

Eu adicionaria ele pode gerenciar arquivos excluídos, movendo-os para a Lixeira ou 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.

3
luri

Você pode usar difusa:

Sudo apt-get install diffuse
diffuse file1 file2
3
metdos

Você pode tentar meld .

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

2
Pavlos G.

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

1
Rog

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

link do Lanchpad

1
Reza

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

Recursos multiplataforma, fáceis, sem problemas e com recursos de gravação de perfil tornam Jfilesync minha melhor escolha

0
nightcrawler