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.