Eu acho que você poderia ir usando 3 ferramentas: cmp é melhor para arquivos binários e diff é melhor para arquivos de texto Para arquivos binários diff apenas relatórios se eles diferem não ot. Diff funciona também para diretórios. Qualquer um dos dois primeiros poderia realizar o que você precisa silenciosamente. Diff usa a opção - q e cmp usa a opção - s para dizer apenas um código de retorno: 0 se os dois arquivos correspondem a 1 se não. Cmp tem também uma ótima opção para evitar (tipo de) ler o arquivo inteiro (bom se você tiver arquivos grandes): se você sabe que os arquivos podem diferir nas primeiras N linhas ou entre a linha N e M você poderia fazer (ou seja, para Linha N 10 e M 20): Eu adicionei md5sum à lista porque se você tiver a chance de calcular a soma de verificação MD5 toda vez que você editar um desses arquivos, então você poderia comparar apenas isso para encontrar rapidamente se eles correspondem ou não. Neste caso eu assumo que você tem um monte de arquivo para comparar. Respondeu Oct 25 10 at 9: 23The KDiff3 - preferences (menu Settings-gtConfigure KDiff3) tem uma seção chamada Directory Merge com estas opções: Selecione se deseja pesquisar diretórios recursivamente. Apenas os arquivos que correspondam a qualquer padrão aqui serão colocados na árvore. Mais de um padrão pode ser especificado aqui usando o ponto-e-vírgula como separador. Curingas válidos: e. (Por exemplo. cpp. h). O padrão é. Esse padrão não é usado em diretórios. Os arquivos que correspondam a este padrão serão excluídos da árvore. Mais de um padrão pode ser especificado aqui usando o ponto-e-vírgula como separador. Curingas válidos: e. O padrão é. orig. o.obj. Os diretórios que correspondam a esse padrão serão excluídos da árvore. Mais de um padrão pode ser especificado aqui usando o ponto-e-vírgula como separador. Curingas válidos: e. O padrão é CVSdeps. svn. Ignore arquivos e diretórios que também seriam ignorados pelo CVS. Muitos arquivos gerados automaticamente são ignorados pelo CVS. A grande vantagem é que isso pode ser diretório específico através de um. cvsignore-arquivo local. (Consulte info: cvscvsignore.) Localizar Arquivos Ocultos e Diretórios: Em alguns arquivos de sistemas os arquivos possuem um Hidden-attribute. Em outros sistemas, um nome de arquivo começando com um ponto. Faz com que ele seja escondido. Esta opção permite-lhe decidir se pretende incluir estes ficheiros na árvore ou não. O padrão é ativado. Siga as ligações de arquivo: Para links para arquivos: Quando desabilitado, os links simbólicos são comparados. Quando ativado, os arquivos por trás dos links são comparados. O padrão é desligado. Siga as ligações de diretório: Para links para diretórios: Quando desativado, os links simbólicos serão comparados. Quando ativado, o link será tratado como um diretório e será digitalizado recursivamente. (Observe que o programa não verifica se o link é recursivo. Por exemplo, um diretório que contém um link para o diretório causaria um loop infinito, e depois de algum tempo quando a pilha transborda ou toda a memória é usada, falha o programa. ) O padrão é desligado. Comparação do nome de arquivo com diferenciação de maiúsculas e minúsculas: O padrão é false no Windows, verdadeiro para outros sistemas operacionais. Modo Comparação de Arquivos: Este é o modo de comparação de arquivos padrão. Faça uma análise completa de cada arquivo e mostre as colunas de informações estatísticas. (Número de conflitos resolvidos, não resolvidos, não brancos e brancos.) A análise completa é mais lenta do que uma análise binária simples e muito mais lenta quando usada em arquivos que não contêm texto. Confira a data de modificação: Se você compara grandes diretórios em uma rede lenta, talvez seja mais rápido comparar as datas de modificação eo tamanho do arquivo sozinho (especifique o apropriado arquivo-antipatterns). Mas esta melhoria de velocidade vem com o preço de um pouco de incerteza. Use esta opção com cuidado. O padrão é desligado. Semelhante a confiar na data de modificação. Nenhuma comparação real acontece. Dois arquivos são considerados iguais se seus tamanhos de arquivo forem iguais. Isso é útil quando a operação de cópia de arquivo não preservou a data de modificação. Use esta opção com cuidado. O padrão é desligado. Ativa o Sync-Mode quando dois diretórios são comparados e nenhum diretório de destino explícito foi especificado. Neste modo, as operações propostas serão escolhidas de modo que ambos os diretórios de origem sejam iguais depois. Além disso, o resultado de mesclagem será gravado em ambos os diretórios. O padrão é desligado. Copiar mais recente em vez de mesclar: Em vez de mesclar a operação proposta, copiará a fonte mais nova se as alterações acontecerem. (Considerado inseguro, porque implica que você sabe, que o outro arquivo não foi editado também. Verifique para certificar-se de que em todos os casos.) Padrão é desativado. Se um arquivo ou diretório completo for substituído por outro ou for excluído, a versão original será renomeada com uma extensão. orig. Se um arquivo de backup antigo com extensão. orig já existir, então ele será excluído sem backup. Isso também afeta a fusão normal de arquivos individuais, não apenas no modo de mesclagem de diretório. O padrão é on. Id gostaria de comparar diretórios com arquivos binários. Na verdade, eu não estou interessado em quais são as diferenças reais entre os arquivos, mas para saber se há uma diferença (e quais arquivos são diferentes). Anteriormente eu usei meld. Mas não é possível comparar arquivos binários. Por favor, aconselhe-me sobre o que tais ferramentas de comparação de arquivos existem que podem fazer isso. NOTA: Não importa se é uma ferramenta gráfica ou é apenas tem uma linha de comando. Isso pode ser feito facilmente com diff. Por exemplo: No exemplo acima, os diretórios foo e bar contêm arquivos binários e bash2 está apenas em foo. Então, você poderia executar algo simples como: Isso irá mostrar-lhe os arquivos diferentes, se houver, ou imprimir O conteúdo diretórios são idênticos se eles são. Para comparar subdiretórios e quaisquer arquivos que eles possam conter, use diff - r. Combine-o com - q para suprimir a saída para arquivos de texto. Respondeu Nov 18 14 at 12:17
No comments:
Post a Comment