table of contents
other languages
DIFF(1) | Narzędzia GNU | DIFF(1) |
NAZWA¶
diff - szukanie różnic pomiędzy dwoma plikamiSKŁADNIA¶
diff [opcje] plik1 plik2OPIS¶
Uwaga! To tłumaczenie może być nieaktualne! 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.
- -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.
- %<
- 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.
- %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.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.INFORMACJE O TŁUMACZENIU¶
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:- man --locale=C 1 diff
1 października 1994 | Narzędzia różnicowe GNU |