Provided by:
manpages-pl_20060617-2_all 
NAZWA
diff - szukanie różnic pomiędzy dwoma plikami
SKŁADNIA
diff [opcje] plik1 plik2
OPIS
Dokumentacja niniejsza nie jest już utrzymywana i może być niedokładna
lub niekompletna. Autorytatywnym źródłem jest obecnie dokumentacja
Texinfo. Dostęp do niej uzyskasz wpisując w wierszu poleceń:
pinfo diff
lub
info diff.
W najprostszym przypadku diff porównuje zawartość dwóch plików, plik1 i
plik2. Nazwa pliku - oznacza tekst odczytywany ze standardowego
wejścia. W specjalnym przypadku "diff - -" porównuje kopię
standardowego wyjścia ze samym sobą.
Jeśli plik1 jest katalogiem a plik2 nie, diff porównuje plik z katalogu
plik1, którego nazwa jest taka sama, jak plik2, i odwrotnie. Plik nie
będący katalogiem nie może być -.
Jeśli zarówno plik1 jak i plik2 są katalogami, diff porównuje
odpowiednie pliki w obu katalogach, w kolejności alfabetycznej. To
porównanie nie jest rekurencyjne, chyba że podano opcję -r lub
--recursive. diff nigdy nie porównuje zawartości katalogu tak, jakby
był on plikiem. Podany plik nie może być standardowym wejściem,
ponieważ standardowe wejście nie ma nazwy i nie dotyczy go zapis `plik
o tej samej nazwie'.
Opcje diff na ogół zaczynają się od -, więc zwykle nazwy plików plik1
oraz plik2 nie mogą zaczynać się od -, jednak argument -- traktuje
pozostałe argumenty jako nazwy plików, nawet jeśli zaczynają się one od
-.
OPCJE
Poniżej znajduje się podsumowanie wszystkich opcji akceptowanych przez
GNU diff. Większość opcji posiada dwie równoważne formy, jedną z nich
jest pojedyncza litera poprzedzona kreską -, a drugą pełna nazwa
poprzedzona przez --. Wiele pojedynczych liter opcji (nie wymagających
argumentu) może być łączonych w pojedynczym słowie: `-ac' jest
równoważne z `-a -c'. Opcje w formie pełnej nazwy mogą być skracane do
dowolnego unikalnego przedrostka. Klamry ([ i ]) oznaczają, że opcja
pobiera opcjonalny argument.
-i
--ignore-case
Ignorowanie zmian w wielkości liter, duże i małe litery są
uznawane za równoważne.
-w
--ignore-all-space
Ignorowanie wszystkich odstępów przy porównywaniu plików.
-b
--ignore-space-change
Ignorowanie zmian w ilości odstępów.
-B
--ignore-blank-lines
Ignorowanie zmian, które jedynie dodają lub usuwają puste linie.
-I regexp
--ignore-matching-lines=regexp
Ignorowanie zmian, które jedynie dodają lub usuwają linie
pasujące do wyrażenia regularnego regexp.
--binary
diff normalnie czyta i zapisuje wszystkie dane jako tekst. Ta
opcja wymusza odczyt i zapis danych w trybie binarnym. Nie ma
efektu na systemach zgodnych z POSIX, jak GNU czy tradycyjne
Uniksy. Jednak wiele systemów operacyjnych komputerów
osobistych oznacza koniec linii dwuznakową sekwencją: znakiem
powrotu karetki plus znak nowej linii. Na takich systemach diff
normalnie ignoruje powroty karetki na wejściu i generuje je na
końcu każdej linii wyjściowej, ale z opcją --binary traktuje
powrót karetki jak każdy inny znak wejściowy i nie dokłada go na
końcu tworzonych linii. Przydatne do operowania na plikach nie-
tekstowych, które mają być wymieniane z systemami POSIX-owymi.
Do porównywania dwu plików bajt po bajcie służy polecenie
cmp(1).
-a
--text Traktowanie wszystkich plików jako pliki tekstowe i porównywanie
ich linia po linii, nawet jeśli nie wyglądają one na pliki
tekstowe.
-c
-C linie
--context[=linie]
Użycie kontekstowego formatu wyjściowego z pokazaniem ilości
linii kontekstu podanej w linie (wartość całkowita), lub trzy
jeśli nie podano linie. Do prawidłowego działania patch
potrzebuje co najmniej dwóch linii kontekstu.
-u
-U linie
--unified[=linie]
Użycie zunifikowanego formatu wyjściowego i pokazanie ilości
linii kontekstu podanej w linie (wartość całkowita), lub trzy
jeśli nie podano linie. Do prawidłowego działania patch
potrzebuje co najmniej dwóch linii kontekstu.
-linie Wyświetlenie ilości linii kontekstu podanej w linie (wartość
całkowita). Ta opcja nie ustala wyjściowego formatu, nie ma ona
efektu jeśli nie podano opcji -c lub -u. Ta opcja jest
przestarzała. Do prawidłowego działania patch potrzebuje co
najmniej dwóch linii kontekstu.
-L etykieta
--label=etykieta
Użycie tekstu etykieta w miejsce nazwy plików w nagłówku formatu
kontekstowego i zunifikowanego.
-p
--show-c-function
Pokazanie, do jakiej funkcji C należy każda ze zmian.
-F regexp
--show-function-line=regexp
Pokazanie ostatniej poprzedzającej linii, która pasuje do
wyrażenia regularnego regexp dla każdego różniącego się
fragmentu w formacie kontekstowym i zunifikowanym.
-q
--brief
Poinformowanie jedynie o tym, czy pliki się różnią, bez
podawania szczegółów na temat różnic.
-e
--ed Stworzenie wyjścia, które jest poprawnym skryptem ed.
-f
--forward-ed
Stworzenie wyjścia, które wygląda prawie tak jak skrypt ed, ale
zawiera modyfikacje w kolejności pojawiania się zmian w pliku.
-n
--rcs Wyprowadzenie różnic w formacie RCS, tak jak -f, z tym
wyjątkiem, że każda komenda wyszczególnia numer linii, której
dotyczy.
-y
--side-by-side
Użycie formatu wyjściowego jeden obok drugiego.
-W kolumny
--width=kolumny
Użycie szerokości wyjścia kolumny w formacie jedna obok drugiej.
--left-column
Wyświetlenie jedynie lewej kolumny z dwóch wspólnych w formacie
jedna obok drugiej.
--suppress-common-lines
Nie wyświetlanie wspólnych linii w formacie jedna obok drugiej.
-D nazwa
--ifdef=nazwa
Stworzenie połączonego wyjścia w formacie preprocesora nazwa.
--old-group-format=formatgrupy
Użycie formatu formatgrupy do wyprowadzenia grupy linii wziętej
jedynie z pierwszego pliku. Pomocne w tworzeniu plików
wynikowych o konstrukcji typu if-then-else.
--new-group-format=formatgrupy
Użycie formatu formatgrupy do wyprowadzenia grupy linii wziętej
jedynie z drugiego pliku. Pomocne w tworzeniu plików wynikowych
o konstrukcji typu if-then-else.
--changed-group-format=formatgrupy
Użycie formatu wyjściowego formatgrupy do wyświetlania grupy
linii zawierających różniące się linie z obu plików. Pomocne w
tworzeniu plików wynikowych o konstrukcji typu if-then-else.
--unchanged-group-format=formatgrupy
Użycie formatu formatgrupy do wyprowadzenia wspólnej grupy linii
wziętej z obu plików. Pomocne w tworzeniu plików wynikowych o
konstrukcji typu if-then-else.
Format grupy linii
W formacie określającym sposób wypisania grupy linii zwykłe
znaki oznaczają same siebie; specyfikacje konwersji zaczynają
się od znaku procentu % i mają jedną z poniższych postaci:
%< linie z plik1, łącznie z końcowym znakiem nowej linii,
formatowane zgodnie z formatem starych linii
%> linie z plik2, formatowane zgodnie z formatem nowych linii
%= linie wspólne dla obu plików, formatowane zgodnie z formatem
linii niezmienionych
%[-][szer][.[dok]]{doxX}litera
wartość określona liter, sformatowana w stylu printf.
litery mają, w odniesieniu do grup linii w nowym pliku,
następujące znaczenie (dla grup w starym pliku używa się
małych liter):
F numer pierwszej linii
L numer ostatniej linii
N ilość linii = L-F+1
E F-1
M L+1
%% pojedynczy dosłowny znak procentu %.
%c'C'
gdzie C jest pojedynczym znakiem, oznacza C. Nie może to być
odwrotny ukośnik ani apostrof. Na przykład, %c':' oznacza
dwukropek, nawet wewnątrz części then formatu if-then-else,
którą normalnie by kończył.
%c'\O'
gdzie O jest łańcuchem 1, 2 lub 3 cyfr ósemkowych, oznacza
znak o kodzie ósemkowym O. Na przykład, %c'\0' oznacza znak
null.
(A=B?T:E)
Jeśli A równa się B, to T, w przeciwnym razie E. A i B są
albo obie stałymi podanymi dziesiętnie albo pojedynczymi
literami, interpretowanymi jak wyżej.
--line-format=formatlinii
Użycie formatu formatlinii do wyprowadzenia wszystkich linii.
To samo, co równoczesne użycie wszystkich opcji formatowania
linii (--old-line-format, --new-line-format, --unchanged-line-
format) z tym samym formatem. Pomocne w tworzeniu plików
wynikowych o konstrukcji typu if-then-else.
--old-line-format=formatlinii
Użycie formatu formatlinii do wyprowadzenia linii wziętej
jedynie z pierwszego pliku. Pomocne w tworzeniu plików
wynikowych o konstrukcji typu if-then-else.
--new-line-format=formatlinii
Użycie formatu formatlinii do wyprowadzenia linii wziętej
jedynie z drugiego pliku. Pomocne w tworzeniu plików wynikowych
o konstrukcji typu if-then-else.
--unchanged-line-format=formatlinii
Użycie formatu formatlinii do wyprowadzenia wspólnej linii
wziętej z obu plików. Pomocne w tworzeniu plików wynikowych o
konstrukcji typu if-then-else.
Format linii
W formacie określającym sposób wypisania linii zwykłe znaki
oznaczają same siebie; specyfikacje konwersji zaczynają się od
znaku procentu % i mają jedną z poniższych postaci:
%l zawartość danej linii, nie licząc kończącego ją znaku nowej
linii (jeśli jest takowy). Ten format ignoruje czy linia
jest niekompletna czy poprawnie zakończona.
%L zawartość danej linii, łącznie z kończącym ją znakiem nowej
linii (jeśli jest takowy). Jeżeli linia jest niekompletna,
to zachowuje tę niekompletność.
%[-][szer][.[dok]]{doxX}n
numer linii wejściowej, sformatowany w stylu printf.
%% dosłowny znak procentu %.
%c'C'
dosłowny znak C. Nie może to być odwrotny ukośnik ani
apostrof.
%c'\O'
znak o kodzie ósemkowym O.
-l
--paginate
Przesłanie wyjścia przez pr, aby podzielić je na strony.
-t
--expand-tabs
Rozszerzanie tabulatorów do spacji na wyjściu, aby zachować
oryginalne ułożenie tabulatorów pliku wejściowego.
-T
--initial-tab
Wyprowadzenie tabulatora zamiast spacji przed tekstem linii w
formacie normalnym lub kontekstowym. Powoduje to normalny wygląd
tabulatorów w linii.
-r
--recursive
Rekurencyjne porównanie wszystkich podkatalogów, jeśli
porównywane są katalogi.
-N
--new-file
Jeśli podczas porównywania katalogów plik istnieje jedynie w
jednym z katalogów, będzie traktowany tak, jakby był obecny w
drugim katalogu, ale pusty.
-P
--unidirectional-new-file
Jeśli podczas porównywania katalogów plik istnieje jedynie w
drugim katalogu, będzie traktowany tak, jakby był obecny w
pierwszym katalogu, ale pusty.
-s
--report-identical-files
Poinformowanie, jeśli oba pliki są identyczne.
-x wzorzec
--exclude=wzorzec
Podczas porównywania katalogów, ignorowanie plików i
podkatalogów, których nazwy pasują do wzorca wzorzec.
-X plik
--exclude-from=plik
Podczas porównywania katalogów, ignorowanie plików i
podkatalogów, których nazwa pasuje do jednego z wzorców podanych
w pliku plik.
-S plik
--starting-file=plik
Podczas porównywania katalogów rozpoczęcie od pliku plik. Opcja
ta jest użyteczna podczas wznawiania przerwanego porównania.
--horizon-lines=linie
Nie ignorowanie ostatnich linie linii wspólnego przedrostka oraz
pierwszych linie linii wspólnego przyrostka.
-d
--minimal
Zmiana algorytmu na taki, który może czasami znaleźć mniejszą
liczbę zmian. Spowalnia to działania diff (czasami bardzo
znacznie).
-H
--speed-large-files
Użycie algorytmów heurystycznych aby przyspieszyć przeszukiwanie
dużych plików ze znaczną liczbą rozrzuconych małych zmian.
-h Ta opcja aktualnie nie ma żadnego efektu, ale istnieje dla
zgodności z systemem Unix.
--sdiff-merge-assist
Wyświetlenie dodatkowych informacji pomocnych dla sdiff. sdiff
korzysta z tej opcji gdy uruchamia diff. Użytkownicy nie powinni
korzystać z tej opcji bezpośrednio.
--help Wyświetlenie informacji o stosowaniu programu i dostępnych
opcjach.
-v
--version
Wyświetlenie numeru wersji programu.
KOPIOWANIE
Plik ten powstał na podstawie podręcznika info pakietu diffutils.
Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Foundation.
ZOBACZ TAKŻE
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).
DIAGNOSTYKA
Zwracana wartość 0 oznacza, że nie odnaleziono różnic, 1 oznacza
znalezienie różnic, a 2 kłopoty.