Manpages

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.