Estou usando este script bash para verificar se o conteúdo de dois caminhos install
e install1
transmitidos como argumentos é o mesmo:
#!/bin/sh
du -a $1 | grep -Po "[0-9]+\t$1/\K.*" | sort -n > list.txt
du -a $2 | grep -Po "[0-9]+\t$2/\K.*" | sort -n > list1.txt
cmp list.txt list1.txt
Estou executando o script desta maneira:
./compare-folders install install1
E a comparação entre as listas de arquivos está falhando:
list.txt list1.txt differ: byte 3557704, line 37504
Qual deve significa que pelo menos um arquivo presente em uma pasta está faltando na outra pasta.
Eu verifiquei as diferenças entre list.txt
e list1.txt
usando difusa e faltam algumas linhas em comparação com as outras. A primeira linha que falta em list.txt
, mas está presente em list1.txt
(ou seja, o primeiro arquivo aparentemente não presente em install
mas presente em install1
) é:
Windows/WinSxS/amd64_microsoft-windows-g..cy-script.resources_31bf3856ad364e35_6.3.9600.16384_it-it_b734f6cc26342351/gpscript.dll.mui
Mas o arquivo está presente nas duas pastas. O mesmo para outros dois arquivos que me preocupei em verificar.
O que é estranho sobre isso é que a escolha das linhas a serem descartadas é aparentemente aleatória, enquanto a execução do script várias vezes sempre produz o mesmo resultado exato.
Estou classicamente faltando algo idiota. Eu estou tentando resolver o que é, mas a partir de agora sem sorte.