Thursday, 28 December 2017

Linux compare diretórios opções binárias


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, a diferença apenas informa se eles diferem ou não. O diff funciona também para diretórios. Qualquer um dos dois primeiros poderia realizar o que você precisa em silêncio. Diff usa a opção - q e cmp usa a opção - s para dizer-lhe apenas um código de retorno: 0 se os dois arquivos coincidirem 1 se não. Cmp também tem uma ótima opção para evitar (tipo de) ler todo o arquivo (bom se você tiver arquivos grandes): se você sabe que os arquivos podem ser diferentes nas primeiras N linhas ou entre a linha N e M você poderia fazer (ou seja, para Linha N 10 e M 20): 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 combinam ou não. Neste caso, suponho que você tenha muitos arquivos para comparar. Respondeu 10 de outubro 10 às 9: 23A preferências do KDiff3 (menu Configurações-gtConfigure KDiff3) tem uma seção chamada Combinação de diretório com estas opções: Selecione se deseja procurar diretórios recursivamente. Somente os arquivos que correspondem 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. Cartões curtos válidos: e. (Por exemplo,.cpp. h). O padrão é. Esse padrão não é usado nos diretórios. Os arquivos que correspondem 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. Cartões curtos válidos: e. O padrão é. orig. o.obj. Os diretórios que correspondem 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. Cartões curtos válidos: e. O padrão é CVSdeps. svn. Ignore arquivos e diretórios que também serão 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 arquivo local. cvsignore. (Consulte informações: cvscvsignore.) Encontre arquivos e diretórios escondidos: em alguns arquivos de arquivos, os arquivos possuem um atributo oculto. Em outros sistemas, um nome de arquivo começando com um ponto. Faz com que seja escondido. Esta opção permite que você decida se deve incluir esses arquivos na árvore ou não. O padrão está ativado. Seguir Links de arquivos: Para links para arquivos: Quando desativado, os links simbólicos são comparados. Quando ativado, os arquivos por trás dos links são comparados. O padrão está desligado. Seguir os links do 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 ele será verificado recursivamente. (Note que o programa não verifica se o link é recursivo. Então, por exemplo, um diretório que contém um link para o diretório causaria um ciclo infinito, e depois de algum tempo em que a pilha transborda ou toda a memória é usada, coloque o programa em suspenso. ) O padrão está desativado. Comparação de nome de arquivo sensível a maiúsculas e minúsculas: o padrão é falso no Windows, verdadeiro para outros sistemas operacionais. Modo de comparação de arquivos: este é o modo de comparação de arquivo 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. (Especifique o arquivo apropriado anti-padrão). Confie na data de modificação: se você comparar diretórios grandes em uma rede lenta, pode ser mais rápido comparar as datas de modificação e o comprimento do arquivo sozinho. Mas esta melhoria de velocidade vem com o preço de uma pequena incerteza. Use esta opção com cuidado. O padrão está 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 está desligado. Ativa o modo de sincronização 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 para que ambos os diretórios de origem sejam iguais depois. Também o resultado de mesclagem será gravado em ambos os diretórios. O padrão está desligado. Copie mais novo em vez de mesclar: em vez de fundir a operação proposta, copiará a fonte mais nova se as mudanças acontecerem. (Considerado inseguro, porque implica que você sabe, que o outro arquivo ainda não foi editado. Verifique se há todos os casos.) O padrão está desativado. Se um arquivo ou um 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 antigo arquivo de backup com extensão. orig já existe, isso será excluído sem backup. Isso também afeta a fusão normal de arquivos únicos, 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, não estou interessado em quais são as diferenças reais entre os arquivos, mas para saber se há um diferente (e quais arquivos diferem). Anteriormente, usei a meld. Mas não pode comparar arquivos binários. Por favor, avise-me sobre o que existem ferramentas de comparação de arquivos que podem fazer isso. NOTA: Não importa se é uma ferramenta gráfica ou apenas possui uma linha de comando. Isso pode ser feito facilmente com o diff. Por exemplo: no exemplo acima, os diretórios foo e barra contêm arquivos binários e bash2 é apenas em foo. Então, você poderia executar algo simples como: Isso irá mostrar-lhe os diferentes arquivos, se houver, ou imprimir. Os conteúdos dos diretórios são idênticos se eles são. Para comparar subdiretórios e quaisquer arquivos que eles também possam conter, use diff - r. Combine-o com - q para suprimir a saída para arquivos de texto. Respondeu 18 de novembro às 12: 17 Para comparar 2 arquivos, usamos o comando diff. Como comparamos 2 diretórios Especificamente, queremos saber quais filessubdirectories são comuns, o que é apenas em 1 diretório, mas não o outro. Unix old-timers pode lembrar o comando dircmp. Infelizmente, esse comando não está disponível no Linux. No Linux, usamos o mesmo comando diff para comparar diretórios e arquivos. Sem nenhuma opção, diferentes diretórios dir-lhe-ão quais arquivos existem apenas em 1 diretório e não o outro e quais são arquivos comuns. Os arquivos que são comuns em ambos os diretórios (por exemplo, bashrc na lista acima) são difundidos para ver se e como o conteúdo do arquivo é diferente. Se você NÃO está interessado em diferenças de arquivo, basta adicionar a opção - q (ou --brief). Diff ordena sua saída em ordem alfabética pelo nome do arquivo de arquivo. Eu prefiro agrupá-los por se eles são comuns e se eles só existem no primeiro ou segundo diretório. É por isso que canalizei a saída do tipo diff através do comando acima. Observe que, por padrão, o diff não alcança os subdiretórios para comparar os arquivos e os subdiretórios nesse nível. Para mudar seu comportamento para recursivamente, desça subdiretórios, adicione - r.

No comments:

Post a Comment