Usando o diff para mostrar o conteúdo de novos arquivos e que novos arquivos vazios são criados [duplicados]

2

Depois de executar estes 4 comandos, o diretório "a" tem o arquivo "1" com o conteúdo "test" e o arquivo "2" que está vazio, e o diretório "b" está vazio.

$ mkdir a
$ mkdir b
$ echo test > a/1
$ touch a/2

Podemos correr

$ diff -r a b
Only in a: 1
Only in a: 2

O que não é útil para um patch. Ou podemos correr

$ diff -rN a b
diff -rN a/1 b/1
1d0
< test

O que é ótimo para o arquivo "1" porque vemos seu conteúdo, mas agora o arquivo "2" desapareceu. Isso ocorre porque o -N sinalizador significa "tratar arquivos ausentes como vazios", então presumo que o diff não pode ver a diferença entre o arquivo vazio "a / 2" e o arquivo vazio (fingir, já que realmente vazio) "b / 2 ".

Existe uma maneira de mostrar ao diff, em uma execução, que um novo arquivo vazio foi criado e o conteúdo de um novo arquivo não vazio - em um formato que o patch possa usar?

Ou, isso exigiria uma nova opção para diferenciar?

    
por user1902689 18.06.2015 / 01:24

1 resposta

0

Infelizmente, o% normal diff do GNU diffutils não suporta mudanças como b (remove arquivos vazios). O makepatch pode ser útil para essa situação. Está disponível como um pacote no Debian / Ubuntu.

    
por 18.06.2015 / 06:15

Tags