Arch manual pages

DIFF(1) Nástroje GNU DIFF(1)

JMÉNO

diff - najde rozdíly mezi dvěma soubory

POUŽITÍ

diff [volby] ze-souboru do-souboru

POPIS

V nejjednodušším případě program diff porovnává obsahy souborů ze-souboru a do-souboru. Jméno souboru - znamená text čtený ze standardního vstupu. Jako zvláštní případ diff - - porovná kopii standardního vstupu samu se sebou.
 
Pokud je ze souboru adresářem a do-souboru nikoliv, diff porovnává soubor v ze-souboru jehož jméno je stejné jako do-souboru, a naopak. Soubor, který není adresářem, však nesmí být -.
 
Pokud jsou oba ze-souboru a do-souboru adresáři, program diff porovnává odpovídající soubory v obou adresářích, v abecedním pořadí; toto porovnávání není rekurzivní, ledaže je použita volba -r nebo --recursive. Program diff nikdy neporovnává skutečný obsah adresáře, jako by to byl soubor. Soubor, který je úplně určený nemůže být standardní vstup, protože standardní vstup je bezejmenný a zápis ``soubor se stejným jménem'' se na tento případ nevztahuje. Volby programu diff začínají znakem -, takže za běžných okolností ze-souboru a do-souboru nemohou začínat na -. Nicméně argumenty uvedené za -- jsou považovány za jména souborů i v případě, že začínají na -.

Volby

Následuje souhrn všech voleb, které GNU diff akceptuje. Většina voleb má dvě rovnocenná jména; první jako jediné písmeno, kterému předchází - a druhé - dlouhé jméno, kterému předchází --. Více jednopísmenných voleb (pokud nevyžadují argument) může být spojeno do jednoho slova: -ac je rovnocenné zápisu -a -c. Dlouhá jména voleb mohou být zkrácena na jakýkoliv jedinečný začátek svého jména. Hranaté závorky ([ a ]) označují že volba může být doplněna argumentem.
-počet
Zobrazí počet (celé číslo) řádků kontextu. Tato volba sama o sobě neurčuje výstupní formát a projeví se jen v kombinaci s -c nebo -u. Tato volba je zastaralá. Aby mohl program patch správně fungovat, potřebuje obvykle nejméně dva řádky kontextu.
-a
Považuje všechny soubory za textové a porovnává je řádek po řádku, i když textové nejsou.
-b
Ignoruje změny v objemu white space.
-B
Ignoruje změny, které pouze vloží nebo vypustí prázdné řádky.
--brief
Pouze oznámí, zda se soubory liší, bez podrobností o změnách.
-c
Použije kontextový výstupní formát.
-C řádků
 
--context[=řádků]
Použije kontextový výstupní formát se zobrazením zadaného počtu řádků (celé číslo) kontextu. Není-li počet řádků určen, jsou zobrazeny tři. Aby mohl program patch správně fungovat, potřebuje obvykle nejméně dva řádky kontextu.
--changed-group-format=formát
Použije formát k vypsání skupiny řádek, obsahující lišící se řádky z obou souborů ve tvaru if-then-else.
-d
Změní algoritmus tak, že může najít i menší sadu změn. Program diff se tak zpomalí (někdy výrazně).
-D jméno
Způsobí výstup ve spojeném formátu if-then-else, v závislosti na jménu makra preprocesoru.
-e
 
--ed
Vzniklý výstup je validním skriptem programu ed.
--exclude=vzor
Při porovnávání adresářů ignoruje soubory a podadresáře, jejichž basenames odpovídají tomuto vzoru.
--exclude-from=soubor
Při porovnávání adresářů ignoruje soubory a podadresáře, jejichž basenames odpovídají jakémukoliv vzoru obsaženému v souboru.
--expand-tabs
Ve výstupu převede tabulátory na mezery, aby zachoval zarovnání tabulátorů ze vstupních souborů
-f
Výstup zhruba připomíná skript programu ed, ale obsahuje změny v pořadí, v jakém se v souboru objevují.
-F regulární_výraz
Při použití kontextového nebo sjednoceného formátu ukazuje pro každý soubor změn tu část z předcházejícího řádku, která odpovídá regulárnímu_výrazu.
--forward-ed
Výstup zhruba připomíná skript programu ed, ale obsahuje změny v pořadí, v jakém se v souboru objevují.
-h
Tato volba nemá v současnosti žádný význam, je přítomna pro kompatibilitu s Unixem.
-H
Používá heuristiku pro urychlení práce s velkými soubory, které obsahují mnoho rozptýlených malých změn.
--horizon-lines=n
Nezahazuje posledních n řádků společného prefixu a prvních n řádků společnéhu suffixu.
-i
Ignoruje změny ve velikosti písmen; Považuje malá a velká písmena za rovnocenná.
-I regulární_výraz
Ignoruje změny, které pouze vloží nebo smažou řádky odpovídající regulárnímu_výrazu.
--ifdef=jméno
Způsobí výstup ve spojeném formátu if-then-else, v závislosti na jménu makra preprocesoru.
--ignore-all-space
Při porovnávání řádků ignoruje white space.
--ignore-blank-lines
Ignoruje změny, které pouze vloží nebo smažou prázdné řádky.
--ignore-case
Ignoruje změny ve velikosti písmen; Považuje malá a velká písmena za rovnocenná.
--ignore-matching-lines=regexp
Ignoruje změny, které pouze vloží nebo smažou řádky odpovídající regulárnímu_výrazu.
--ignore-space-change
Ignoruje změny v objemu white space.
--initial-tab
U normálního nebo kontextového formátu vypíše před textem na řádce místo mezery tabulátor. Díky tomu bude zarovnání tabulátorů na řádce vypadat normálně.
-l
Zpracuje výstup programem pr, aby jej rozdělil na stránky.
-L label
 
--label=label
Použije label namísto jména souboru v hlavičkách kontextového a sjednoceného formátu.
--left-column
V případě formátu "side by side" vypíše u dvou společných řádků pouze levý sloupec.
--line-format=formát
Použije formát pro vypsání všech vstupních řádků ve formátu if-then-else.
--minimal
Změní algoritmus tak, že může najít i menší sadu změn. Program diff se tak zpomalí (někdy výrazně).
-n
Výstupem jsou rozdíly ve formátu RCS; podobně jako´s volbou -f, ale každý příkaz určuje počet dotčených řádků.
-N
 
--new-file
Při porovnávání adresářů, je-li soubor obsažen pouze v jednom z nich, je v tom druhém považován za existující a prázdný.
--new-group-format=formát
Použije format pro vypsání skupiny řádků ze druhého souboru ve formátu if-then-else.
--new-line-format=formát
Použije formát pro vypsání řádky ze druhého souboru ve formátu if-then-else.
--old-group-format=formát
Použije formát pro vypsání skupiny řádků z prtvního souboru ve formátu if-then-else.
--old-line-format=formát
Použije formát pro vypsání řádky z prvního souboru ve formátu if-then-else.
-p
Ukáže, v jaké funkci jazyka C je každá změna.
-P
Při porovnávání adresářů, je-li soubor obsažen pouze v druhém z nich, je v tom prvním považován za existující a prázdný.
--paginate
Zpracuje výstup programem pr, aby jej rozdělil na stránky.
-q
Pouze oznámí, zda se soubory liší, bez podrobností o změnách.
-r
Při porovnávání adresářů jsou rekurzivně prohledávány všechny nalezené podadresáře.
--rcs
Výstupem jsou rozdíly ve formátu RCS; podobně jako´s volbou -f, ale každý příkaz určuje počet dotčených řádků.
--recursive
Při porovnávání adresářů jsou rekurzivně prohledávány všechny nalezené podadresáře.
--report-identical-files
 
-s
Pokud jsou dva sobory shodné, oznámí to.
-S soubor
Při porovnávání adresářů začne souborem soubor. To se používá pro obnovení přerušeného porovnávání.
--sdiff-merge-assist
Vypíše další informace pro pomoc programu sdiff. Program sdiff používá tuto volbu, když spouští program diff. Tato volba není míněna pro přímé používání uživateli.
--show-c-function
Ukáže, v jaké funkci jazyka C je každá změna.
--show-function-line=regulární_výraz
Při použití kontextového nebo sjednoceného formátu ukazuje pro každý soubor změn tu část z předcházejícího řádku, která odpovídá regulárnímu_výrazu.
--side-by-side
Použije výstupní formát "side by side".
--speed-large-files
Používá heuristiku pro urychlení práce s velkými soubory, které obsahují mnoho rozptýlených malých změn.
--starting-file=soubor
Při porovnávání adresářů začne souborem soubor. To se používá pro obnovení přerušeného porovnávání.
--suppress-common-lines
Při použití formátu "side by side" netiskne shodné řádky.
-t
Ve výstupu převede tabulátory na mezery, aby zachoval zarovnání tabulátorů ze vstupních souborů.
-T
U normálního nebo kontextového formátu vypíše před textem na řádce místo mezery tabulátor. Díky tomu bude zarovnání tabulátorů na řádce vypadat normálně.
--text
Považuje všechny soubory za textové a porovnává je řádek po řádku, i když textové nejsou.
-u
Použije sjednocený výstupní formát.
--unchanged-group-format=formát
Použije format k vypsání skupiny řádků společné oběma souborům ve formátu if-then-else.
--unchanged-line-format=formát
Použije formát k vypsání řádku společného oběma souborům ve formátu if-then-else.
--unidirectional-new-file
Při porovnávání adresářů, je-li soubor obsažen pouze v druhém z nich, je v tom prvním považován za existující a prázdný.
-U počet
 
--unified[=počet]
Použije sjednocený formát výstupu se zobrazením určeného počtu (celé číslo) řádků kontextu nebo tří řádků, pokud nebyl počet určen. Aby mohl program patch správně fungovat, potřebuje obvykle nejméně dva řádky kontextu.
-v
 
--version
Vypíše číslo verze programu diff.
-w
Při porovnávání řádků ignoruje white space.
-W sloupců
 
--width=sloupců
Při použití formátu "side by side" použije jako šířku výstupu zadaný počet sloupců.
-x vzor
Při porovnávání adresářů ignoruje soubory a podadresáře, jejichž basenames odpovídají vzoru.
-X soubor
Při porovnávání adresářů ignoruje soubory a podadresáře, jejichž basenames odpovídají jakémukoliv vzoru obsaženému v souboru.
-y
Použije výstupní formát "side by side"

DALŠÍ INFORMACE

cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).

DIAGNOSTIKA

Návratový kód 0 znamená, že nebyly nalezeny žádné rozdíly, 1 znamená, že rozdíly nalezeny byly a 2 znamená problémy.
22.září 1993