Você pode ler a saída. diff
não fornece códigos de status de saída diferentes, exceto:
- 0 se as entradas forem iguais,
- 1 se diferente,
- 2 se problemas.
(de man diff )
"Problema" significa que não foi possível ler um arquivo ou praticamente qualquer outra coisa.
A partir de um pequeno teste usando diff (GNU diffutils) 3.3 e comparando pastas, diff
envia mensagens para stdout ou stderr:
-
Se um arquivo estiver faltando, o status de saída será 1 , e isso aparecerá em stdout :
Only in folder1: file-a
-
Se um arquivo é ilegível, o status de saída é 2 , e isso aparece em stderr :
diff: folder1/file-b: Permission denied
(Se ambos os erros ocorrerem, o status de saída será 2.)
Então, leia / analise stdout e stderr para descobrir quais são os problemas.
Note que o diff continuará processando mais arquivos depois de encontrar "problemas", então a linha relatando o motivo do status de saída 2 pode estar em qualquer parte da saída.
Veja este link GNU "diffutils manual" para mais informações sobre como comparar diretórios (e usando diff em geral, é insanamente mais detalhado que apenas man diff
). Informações como:
Ou esses Q's relacionados de outros sites: