exclui arquivos de soquete durante diff -r

0

diff tem uma opção --recursive ( -r ) para fazer uma comparação entre dois diretórios (os arquivos dentro deles). Existe uma maneira de fazer com que diff ignore todos os arquivos de soquete e somente os arquivos de soquete?

Estou usando diff --brief -r --no-dereference /var/ /media/mateusz/Database/tmp/duplicity_unpack/var/ para verificar parte do meu backup e sou inundado por entradas como Only in /var/lib/samba/private/msg.sock: 10001 . Esses arquivos são arquivos de soquete que o Duplicity não conseguiu fazer backup - e não está indicando um backup com falha.

Estou ciente de que posso escrever meu próprio processamento de saída, mas ele tem potencial para erros, requer mais tempo e exige que eu mantenha uma lista de arquivos de soquete no sistema de arquivos.

Note que as pastas vazias não devem ser ignoradas na comparação.

    
por Mateusz Konieczny 05.07.2016 / 13:43

1 resposta

1

Eu não acho que isso seja possível com diff sem modificações no código. Você precisará usar find para listar os arquivos necessários, os quais você poderá passar para diff sem recursão:

find /var/ -type f -exec diff {} /media/mateusz/Database/tmp/duplicity_unpack{} \;

Isto encontra apenas arquivos normais, já que não vejo sentido em chamar diff com qualquer outro tipo, então não há sockets, FIFOs, diretórios, arquivos de dispositivos, etc.

    
por 05.07.2016 / 14:33