Komendy Linux: Porównywanie plików
Narzędzie "cmp" służy do porównywania dwóch plików dowolnego typu i wyświetlenia rezultatu tego porównania na standardowym wyjściu. W przypadku, gdy pliki są takie same, rezultat polecenia jest pusty. W przypadku gdy następuje różnica, numerowanie wierszy, w których wystąpiły, zaczyna się od tego wiersza.
user@linux:~$ cmp plik1.txt plik2.txt
plik1.txt plik2.txt różnią się: bajt 6, linia 1
-c, --print-chars
W celu wypisania znaków, które różnią się w pliku, należy użyć tej opcji. Dzięki temu uzyskamy pełen spis różnic pomiędzy plikami.
user@linux:~$ cmp -c plik1.txt plik2.txt
plik1.txt plik2.txt różnią się: bajt 6, linia 1 zawiera 61 I 622 L
- i [wartość], --ignore-initial [wartość]
Ignorowanie różnic w ilości początkowych bajtów każdego pliku dokonuje się za pomocą parametru - i . Jeżeli plik jest krótszy od ilości bajtów, którą podaliśmy, wówczas nic nie zostanie wyświetlone.
user@linux:~$ cmp -i 0 plik1.txt plik2.txt
plik1.txt plik2.txt różnią się: bajt 6, linia 1
user@linux:~$ cmp -i 20 plik1.txt plik2.txt
20 plik1.txt plik2.txt
-l, --verbose
Wypisywanie różnicy pomiędzy plikami w postaci numerów bajtów i wartości różniących się bajtów jest możliwe dzięki zastosowaniu specjalnego parametru.
user@linux:~$ cmp -l plik1.txt plik2.txt
1 19 19
2 40 23
3 55 53
4 123 324 (...)
-s , --quiet , --silent
W celu niewypisywania wszystkich poszczególnych różnic w plikach, a jedynie zwrócenia informacji, czy pliki się różnią, należy użyć opcji - s.
user@linux:~$ cmp -s plik1.txt plik2.txt