Sabendo o que esses comandos do Windows fazem, eu diria que o equivalente em um script POSIX sh
seria:
equal=no
cmp -s file1 file2 && equal=yes
que definiria a variável equal
como yes
se os dois arquivos puderem ser lidos e tiverem conteúdo idêntico (byte a byte).
Como alternativa ao cmp -s
, em alguns sistemas, incluindo os baseados no Linux, você pode usar diff -q
. diff -q
( q
para quiet ), ao contrário da maioria cmp -s
( s
para silencioso ), reportaria uma mensagem de erro se algum dos arquivos não pudesse ser lido. Embora as implementações GNU de diff
e cmp
primeiro verifiquem se os dois arquivos são caminhos para o mesmo arquivo (incluindo links rígidos ou simbólicos um do outro) ou se são de tamanhos diferentes para salvar a necessidade de lê-los , a implementação busybox
de cmp
não faz enquanto busybox
diff
faz. Portanto, nesses sistemas que usam busybox
, você pode preferir diff -q
por motivo de desempenho.