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.