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