Linux compare directories binary options


Note que isso não suporta nomes de arquivo com determinados caracteres especiais, nesse caso você pode querer usar delimitadores zero que AFAIK diff não está suportando a partir de agora. Mas há comm que é apoiá-lo desde git. savannah. gnu. org/cgit/coreutils. git/commit/hellip assim, uma vez que se trata de um coreutils perto de você, você pode fazer comm - z lt (cd folder1 ampamp find - print0 Sort) lt (cd folder2 ampamp find - print0 sort - z) (cuja saída você pode ter que converter mais no formato que você precisa usando o parâmetro --output-delimiter e ferramentas adicionais). Ndash phk Mar 5 at 21:52 Através de você não está usando bash, você pode fazê-lo usando diff com --brief e --recursive: O homem diff inclui ambas as opções: - q. --brief relatório apenas quando os arquivos diferem - r. --recursive recursivamente comparar quaisquer subdiretórios encontradosTheres muitas soluções para criar um patch de nível de arquivo para arquivos de texto e similares. O que eu estou procurando é um comando de script / shell fácil que irá comparar oldversion / newversion / e dar-me uma árvore de arquivos que eu preciso copiar sobre oldversion para torná-lo igual a newversion (assumindo que os arquivos não são removidos na versão atualizada) . Observe que as duas pastas contêm arquivos binários e de texto. Anteriormente, estávamos usando o hack: fdupes - qrf newversion / oldversion / grep newversion xargs rm Deixando-nos com a pasta newversion que poderia ser empacotada como um patch. Infelizmente, isso acabou sendo desastroso porque fdupes não considera nomes de arquivos. Whatd ser grande é algo como fdupes que realmente fez incluir o nome do arquivo na comparação. Para comparar dois arquivos, usamos o comando diff. Como comparamos 2 diretórios Especificamente, queremos saber quais arquivos / subdiretórios são comuns, quais são apenas no diretório 1, mas não no outro. Unix old-timers pode se lembrar do comando dircmp. Infelizmente, esse comando não está disponível no Linux. No Linux, usamos o mesmo comando diff para comparar diretórios, bem como arquivos. Sem qualquer opção, difere 2 diretórios lhe dirá quais arquivos existem somente em 1 diretório e não o outro, e que são arquivos comuns. 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 diferem. Se você NÃO está interessado em diferenças de arquivos, basta adicionar a opção - q (ou --brief). Diff ordena sua saída alfabeticamente pelo nome do arquivo / subdiretório. Eu prefiro agrupá-los se eles são comuns, e se eles só existem no primeiro ou segundo diretório. É por isso que eu canalizei a saída de diff através de sort no comando acima. Observe que, por padrão, diff não atinge os subdiretórios para comparar os arquivos e subdiretórios nesse nível. Para alterar seu comportamento para ir recursivamente subdiretórios, adicione - r.

Comments

Popular Posts