Monday 31 July 2017

Diff Thinks Files Are Binary Options


1.7 Arquivos binários e forçando comparações de texto Se diff acha que um dos dois arquivos que está comparando é binário (um arquivo não-texto), ele normalmente trata esse par de arquivos muito como se o formato de saída de resumo tivesse sido selecionado (veja Brief) , E relata apenas que os arquivos binários são diferentes. Isso ocorre porque as comparações linha a linha geralmente não são significativas para arquivos binários. Isso não é considerado problema, embora a saída resultante não capture todas as diferenças. Diff determina se um arquivo é texto ou binário, verificando os primeiros poucos bytes no arquivo o número exato de bytes é dependente do sistema, mas normalmente é vários milhares. Se cada byte nessa parte do arquivo não for nulo, diff considera o arquivo como texto, caso contrário considera o arquivo como binário. Às vezes, você pode querer forçar o diff a considerar arquivos como sendo texto. Por exemplo, você pode estar comparando arquivos de texto que contêm caracteres nulos diff seria erroneamente decidir que esses são arquivos não-texto. Ou você pode estar comparando documentos que estão em um formato usado por um sistema de processamento de texto que usa caracteres nulos para indicar formatação especial. Você pode forçar diff a considerar todos os arquivos como arquivos de texto e compará-los linha a linha, usando a opção --text (-a). Se os arquivos que você compara usando esta opção não contiverem texto, eles provavelmente conterão poucos caracteres de nova linha, ea saída diff consistirá de hunks mostrando diferenças entre longas linhas de quaisquer caracteres que os arquivos contenham. Você também pode forçar diff a relatar somente se os arquivos são diferentes (mas não como). Use a opção --brief (-q) para isso. Em sistemas operacionais que distinguem entre texto e arquivos binários, diff normalmente lê e grava todos os dados como texto. Use a opção --binary para forçar o diff a ler e gravar dados binários. Esta opção não tem efeito em um sistema compatível com POSIX como o GNU ou Unix tradicional. No entanto, muitos sistemas operacionais de computadores pessoais representam o fim de uma linha com um retorno de carro seguido de uma nova linha. Em tais sistemas, diff normalmente ignora esses retornos de carro na entrada e os gera no final de cada linha de saída, mas com a opção - bin binária trata cada retorno de carro como apenas outro caractere de entrada e não gera um retorno de carro no Final de cada linha de saída. Isso pode ser útil ao lidar com arquivos não-texto que devem ser trocados com sistemas compatíveis com POSIX. O --strip-trailing-cr faz com que diff trate as linhas de entrada que terminam em retorno de carro seguido de nova linha como se terminassem em nova linha simples. Isso pode ser útil ao comparar texto que é imperfeitamente importado de muitos sistemas operacionais de computadores pessoais. Esta opção afeta como as linhas são lidas, o que, por sua vez, afeta como elas são comparadas e produzidas. Se você quiser comparar dois arquivos byte por byte, você pode usar o programa cmp com a opção --verbose (-l) para mostrar os valores de cada byte diferente nos dois arquivos. Com GNU cmp. Você também pode usar a opção - b ou - print-bytes para mostrar a representação ASCII desses bytes. Consulte Invocar cmp. Para maiores informações. Se diff3 pensar que qualquer um dos arquivos que está comparando é binário (um arquivo não-texto), ele normalmente relata um erro, porque essas comparações geralmente não são úteis. Diff3 usa o mesmo teste como diff para decidir se um arquivo é binário. Como com diff. Se os arquivos de entrada contiverem alguns bytes sem texto, mas caso contrário são como arquivos de texto, você pode forçar o diff3 a considerar todos os arquivos como arquivos de texto e compará-los linha a linha usando a opção - a ou --text.15.1 Opções para Patch Aqui está um resumo de todas as opções aceitas pelo patch GNU. Veja patch e Tradição. Para quais dessas opções são seguras para uso em versões mais antigas do patch. Várias opções de uma única letra que não aceitam um argumento podem ser combinadas em um único argumento de linha de comando com apenas um traço. Faça backup do conteúdo original de cada arquivo, mesmo que normalmente não sejam feitos backups. Consulte Backups. - B prefix --prefix prefix Prepend prefixo para nomes de arquivo de backup. Consulte Nomes de backup. Faça backup do conteúdo original de cada arquivo se o patch não corresponder exatamente ao arquivo. Esse é o comportamento padrão quando não estiver em conformidade com o POSIX. Consulte Backups. Ler e gravar todos os arquivos no modo binário, exceto para a saída padrão e / dev / tty. Esta opção não tem qualquer efeito nos sistemas em conformidade com o POSIX, como o GNU / Linux. Em sistemas onde essa opção faz a diferença, o patch deve ser gerado por lsquo diff - a - binário rsquo. Consulte Binário. Interprete o arquivo de patch como um diff de contexto. Veja a entrada do patch. Diretório - d Diretório - directory Torna o diretório diretório o diretório atual para interpretar os nomes dos arquivos no arquivo de patch e os nomes dos arquivos dados como argumentos para outras opções. Consulte os diretórios de patch. - D name --ifdef name Faz uma saída if-then-else unida usando o nome. Veja If-then-else. Imprima os resultados da aplicação dos patches sem realmente alterar quaisquer arquivos. Veja Corridas Secas. Interprete o arquivo de patch como um script ed. Veja a entrada do patch. Remova arquivos de saída que estão vazios depois que os patches foram aplicados. Consulte Criando e removendo. Suponha que o usuário saiba exatamente o que ele ou ela está fazendo, e não faça perguntas. Ver mensagens de patch. - F linhas --fuzz linhas Define o fuzz fator máximo para linhas. Consulte Inexact. Se num for positivo, obter arquivos de entrada de um sistema de controle de revisão como necessário se zero, não obter os arquivos se negativo, perguntar ao usuário se deseja obter os arquivos. Consulte Controle de Revisão. Exporte um resumo do uso e, em seguida, saia. - i patchfile --input patchfile Leia o patch do arquivo de patch em vez da entrada padrão. Consulte Opções de patch. Deixe qualquer sequência de espaços em branco (espaços ou guias) no arquivo de patch corresponder a qualquer sequência de espaços em branco no arquivo de entrada. Consulte Espaço em Branco Alterado. Interprete o arquivo de patch como um diff normal. Veja a entrada do patch. Ignore os patches que o patch acha que estão invertidos ou já foram aplicados. Veja também - R. Consulte Patches invertidos. Não faça backup do conteúdo original dos arquivos. Esse é o comportamento padrão ao se conformar ao POSIX. Consulte Backups. - o file --output file Utilize o arquivo como o nome do arquivo de saída. Consulte Opções de patch. - p número --strip número Defina o nome do arquivo contagem de tira para o número. Consulte os diretórios de patch. Conformidade com POSIX. Como se a variável de ambiente POSIXLYCORRECT tivesse sido definida. Veja patch e POSIX. Use a palavra de estilo para citar nomes no diagnóstico, como se a variável de ambiente QUOTINGSTYLE tivesse sido definida como palavra. Veja o estilo de citação de remendo. - r reject-file --reject-file reject-file Utilize reject-file como nome de arquivo de rejeição. Consulte Rejeitar nomes. Suponha que esse patch foi criado com os arquivos novos e antigos trocados. Consulte Patches invertidos. Trabalhe silenciosamente a menos que ocorra um erro. Ver mensagens de patch. Não faça perguntas. Ver mensagens de patch. Defina os tempos de modificação e de acesso de arquivos patched de carimbos de tempo dados em cabeçalhos de contexto diff, assumindo que os cabeçalhos de contexto diff usam a hora local. Consulte Selos de tempo de remendo. Interprete o arquivo de correção como um diff unificado. Veja a entrada do patch. Saída informações da versão e, em seguida, sair. - V estilo de backup --versioncontrol backup-style Selecione a convenção de nomenclatura para nomes de arquivo de backup. Consulte Nomes de backup. Imprima mais diagnósticos do que o normal. Ver mensagens de patch. - x number --debug number Define bandeiras de depuração internas. De interesse apenas para patch patchers. - Y prefix --basename-prefix prefix Prepend prefixo para base nomes de arquivos de backup. Consulte Nomes de backup. - z sufixo - sufixo sufixo Use o sufixo como a extensão de backup em vez de lsquo. orig rsquo ou lsquo Definir a modificação e tempos de acesso de arquivos patched de carimbos de tempo dado no contexto cabeçalhos diff, assumindo que o contexto dif cabeçalhos usar UTC. Consulte Stamps. Syntax Parâmetros de Patch / a: Abrange a saída de uma comparação ASCII. Em vez de exibir todas as linhas que são diferentes, fc exibe apenas a primeira ea última linha para cada conjunto de diferenças. / B: Compara os arquivos no modo binário. Fc compara os dois arquivos byte por byte e não tenta resynchronize os arquivos depois de encontrar um incompatibilidade. Este é o modo padrão para comparar arquivos que tenham as seguintes extensões de arquivo. exe. Com Sys Obj. Lib ou. bin. / C: Ignora o caso das letras. / L: Compara os arquivos no modo ASCII. Fc compara os dois arquivos linha por linha e tenta resynchronize os arquivos depois de encontrar um incompatibilidade. Este é o modo padrão para comparar arquivos, exceto arquivos com as seguintes extensões de arquivo. exe. Com Sys Obj. Lib ou. bin. / Lb n: Define o n número de linhas para o buffer de linha interno. O tamanho padrão do buffer de linha é 100 linhas. Se os arquivos que você está comparando tiverem mais do que esse número de linhas consecutivas diferentes, fc cancela a comparação. / N: Exibe os números de linha durante uma comparação ASCII. / T: Impede que fc converta guias em espaços. O comportamento padrão é tratar as guias como espaços, com pontos em cada posição de oitavo caractere. / U: Compara arquivos como arquivos de texto Unicode. / W: Comprime espaço em branco (isto é, guias e espaços) durante a comparação. Se uma linha contiver muitos espaços consecutivos ou guias, / w trata esses caracteres como um único espaço. Quando usado com a opção de linha de comando / w, fc ignora (e não compara) espaço em branco no início e no final de uma linha. / Nnnn: Especifica o número de linhas consecutivas que devem corresponder antes fc considera os arquivos a serem ressincronizados. Se o número de linhas correspondentes nos arquivos for menor que nnnn. Fc exibe as linhas de correspondência como diferenças. O valor padrão é 2. drive1: path1 filename1: Especifica o local eo nome do primeiro arquivo que você deseja comparar. Nome do arquivo1 é necessário. Drive2: path2 filename2: Especifica o local eo nome do segundo arquivo que você deseja comparar. Filename2 é obrigatório. /: Exibe ajuda no prompt de comando. Comentários Usando / b para comparações binárias / b exibe desfasamentos encontrados durante uma comparação binária da seguinte maneira: O valor de xxxxxxxx especifica o endereço hexadecimal relativo para o par de bytes, medido a partir do início do arquivo. Os endereços começam em 00000000. Os valores hexadecimais para yy e zz representam os bytes incompatíveis de filename1 e filename2. respectivamente. Você pode usar curingas (isto é, e) em nome_de_arquivo1 e nome_de_arquivo2. Se você usar um curinga em filename1. Fc compara todos os arquivos especificados para o arquivo especificado por FileName. Se você usar um caractere curinga em filename2, fc usa o valor correspondente de filename1. Trabalhando com memória Ao comparar arquivos ASCII, fc usa um buffer interno (grande o suficiente para armazenar 100 linhas) como armazenamento. Se os arquivos forem maiores do que o buffer, fc compara o que ele pode carregar no buffer. Se fc não encontrar uma correspondência nas partes carregadas dos arquivos, ele pára e exibe a seguinte mensagem: Resynch falhou. Os arquivos são muito diferentes. Ao comparar arquivos binários que são maiores do que a memória disponível, fc compara ambos os arquivos completamente, sobrepondo as partes na memória com as próximas porções do disco. A saída é a mesma que para arquivos que se encaixam completamente na memória. Exemplos Para fazer uma comparação ASCII de dois arquivos de texto denominados Monthly. rpt e Sales. rpt e exibir os resultados em formato abreviado, digite: fc / a monthly. rpt sales. rpt Para fazer uma comparação binária de dois arquivos de lote chamado Lucros. bat e Earnings. bat, digite: fc / b profits. bat earnings. bat Os resultados semelhantes aos seguintes aparecem: Se os arquivos Profits. bat e Earnings. bat forem idênticos, fc exibirá a seguinte mensagem: FC: nenhuma diferença encontrada Para comparar cada arquivo. bat no diretório atual com o arquivo New. bat, digite: Para comparar o arquivo New. bat na unidade C com o arquivo New. bat na unidade D, digite: fc c: new. bat d :. Bat Para comparar cada arquivo de lote no diretório raiz na unidade C para o arquivo com o mesmo nome no diretório raiz na unidade D, digite: Legenda de formatação

No comments:

Post a Comment