A opção --from-file
permite comparar um arquivo com vários arquivos (em vez de algo como tar --files-from
, que lê uma lista de arquivos para operar a partir de um arquivo). Ele tem um --to-file
análogo, que dos dois que você usa dependeria da "direção" relativa da mudança. Como você está usando -q
, que diz apenas que, se houver uma diferença, esperamos que isso não seja importante para você aqui.
Suponho que você tenha um arquivo de referência e deseja compará-lo a um conjunto de arquivos com nomes idênticos, portanto, qualquer um deles deve funcionar:
diff -q --from-file dir1/protein.mol2 $(find . -name protein.mol2)
find . -name protein.mol2 | xargs diff -q --from-file dir1/protein.mol2
No primeiro caso, diff
será executado apenas uma vez e seu código de saída refletirá se foram encontradas ou não diferenças no conjunto.
No segundo caso, diff
pode ser executado mais de uma vez. Este segundo formulário pode ser usado no caso de você ter um grande número de arquivos (ou nomes muito longos de arquivos / diretórios) e atingir um limite de argumento de comando (geralmente 128kB em sistemas Linux).