diff (1)
NÉV

diff - két file közti különbségeket jelez

HASZNÁLAT

diff [opciók] forrásfile célfile

LEÍRÁS

A legegyszerûbb esetben, a diff a forrás- és a célfile tartalmát hasonlítja össze. Ha nem adunk meg filenevet, akkor a billentyûzetrôl olvas be szöveget. Speciális esetben a "diff - -" a billentyûzetrôl beolvasott szöveg másolatát hasonlítja össze az eredetivel. Ha a forrásfile egy könyvtár neve míg a célfile nem, akkor a diff a könyvtárból azt a filet hasonlítja össze a célfile-lal, melynek neve megegyezik a célfile nevével és fordítva. Ebben az esetben a célfile nem lehet névtelen.

Ha mind a forrásfile, mind a célfile könyvtár, akkor a diff a megfelelô file-okat hasonlítja össze a két könyvtárban, méghozzá ABC szerinti sorrendben; az összehasonlítás azonban nem rekurzív kivéve, ha a -r vagy a --recursive opciót is beállítjuk. A diff sohasem £gy hasonlítja a két könyvtár pillanatnyi tartalmát, mintha azok file-ok lennének.

A diff parancs opciói a - karakterrel kezdôdnek, igy a forrás- és célfile neve jobb ha nem kezdôdik - karakterrel, bár a - - argumentum hatására a diff a további argumentumokat filenévként kezeli, még akkor is ha azok -lel kezdôdnek.

OPCIÓK

Most pedig a GNU diff által elfogadott összes opció leírása következik. A legtöbb opciót két név azonosít, az egyikük egybetûs és - elôzi meg, míg a másikat hossz£ név azonosítja és - - elôzi meg. Ha több egybetûs opció áll egymás után, akkor (ha nem igényelnek argumentumot) összevonhatjuk ôket : -ac hatása megegyezik -a -c-vel. A hossz£ névvel ellátott opciókat rövidíthetjük bármilyen egyedi azonosítóval, melyeket a nevük elejébôl képzünk. Ha valamely opció argumentumot igényel azt zárójelekkel ( [ ] ) tüntetjük fel.

-lines
Egy szövegbôl lines (mint egész szám) sort ír ki. Önmagában nem valamilyen formátumban irja ki az outputot; nincs semmi hatása, ha nem a -c vagy -u opcióval együtt használjuk. Ez az opció egyébként elavult. A megfelelô mûködéséhez tipikusan a patch legalább két sornyi szöveget igényel.

-a
Hatására a diff az összes file-t szövegként kezeli és soronként hasonlítja össze, még akkor is ha a file-ok nem szöveges állományok.

-b
Figyelmen kívül hagyja az üres helyek számában jelentkezô különbségeket.

-B
Figyelmen kívül hagyja az üres sorok besz£rásával, vagy törlésével keletkezô különbségeket.

--brief
Csak arról értesít, hogy a két file különbözik-e, arról nem, hogy miben.

-c
Az összefüggô szöveg output formátumot használja.

-C lines

--context[=lines]

Az összefüggô szöveg output formátumot használja, lines db. vagy 3 sort kiírva, ha nem adtunk paramétert. A megfelelô mûködéséhez tipikusan a patch legalább két sornyi szöveget igényel.

-d
Módosítja az algoritmust, hogy az kisebb változásokat is észleljen. Hatására a diff lass£vá (néha nagyon lass£vá) válik.

-D name
Egyesített if-then-else output formátumot képez, a name makró feltételei/szabályai alapján.

-e

--ed
Készít egy output-ot, hogy érvényes legyen az ed script.

--exclude= pattern
Mikor directory-kat hasonlít össze, akkor nem veszi figyelembe azokat a file-kat és subdirecyory-kat, amelyek bázis neve összeíllik a pattern-el.

--exclude-from= file
Mikor directory-kat hasonlít össze, akkor nem veszi figyelembe azokat a file-kat és subdirecyory-kat, amelyek bázis neve megegyezik néhány mintával,amely a file-ban van.

--expand-tabs
Szóközökre cseréli a tabokat az output file-ban, hogy az input file formátumát megtartsa.

-f
Készít egy olyan output-ot, ami ed script-nek tũnik, de a változások sorban feltûnek a file-ban.

--forward-ed
Készít egy olyan output-ot, ami ed script-nek tûnik, de a változások sorban feltûnek a file-ban.

-h
Ennek az opciónak nincsen hatása; Unix kompatibilít´s miatt van jelen.

-H
Azokon a nagy file-okon, amelyeknek számos szétszort kis változásuk van, a gyors kezelés érdekében heuristikát használ.

-i
Semmibe veszi a változásokat, nagy és kis betûk különbözôsége esetén.

-I regexp
Csak akkor nem veszi figyelembe a változásokat, ha a beszûrt ill. törölt sorok megegyeznek a regexp-pel.

--ifdef= name
Készít egyesített if-then-else formátumú output-ot, amely megfelel a name macro-ban definiált formátumnak.

--ignore-all-space
Figyelmen kívül hagyja az üres részt, mikor összehasonlítja a sorokat.

--ignore-blank-lines
Csak akkor nem veszi figyelembe a változásokat, ha üres sorokat szúrtunkbe ill. töröltünk.

--ignore-case
Semmibe veszi a változásokat, nagy és és kis betûk ugyanazok.

--ignore-matching-lines= regexp
Csak akkor nem veszi figyelembe a változásokat, ha a beszûrt ill. törölt sorok megegyeznek a regexp-pel.

--ignore-space-change
Üres sorok összegében figyelmen kívül hagyja a változásokat.

--kezdö-cimke
A kimenet inkább tab mint space egy normal vagy context formátumú sor szövege elôtt. Ez eredményezi, hogy a tabok egymásutánisága a sorban normálisan néz ki.

-l
keresztülmegy az output-on pr hogy lapszámozza azt.

-L cimke

--label= cimke
Használjunk cimkét file név helyett context formában es ismeretlen formátum fejrészben.

--left-column
Csak a bal oszlopát írja ki két átlagos sornak oldalról oldalra formátumban.

--line-format= formátum
Használjunk formázást az outputhoz minden in-then-else formáju input sornál.

--minimal
kicseréli az algoritmust annak reményében, hogy talál egy kisebb halmazát a változásoknak. Ezt a diff lassabban csinálja (olykor sokkal lassabban).

-n
Kimenet RCS-formátumban; mint ahogy -f kivételt tesz az összes parancssal ami kiköteseket tesz a sorok számára.

-N

--new-file
Könyvtár összehasonlitásban, ha egy file csak az egyik könyvtárban talalhato, jelen lesz a másikban is csak üresen.

--new-group-format= formátum
A használt formátum az output-nál a sorok egy csoportjára a masodik file-bol származik if-then-else formában.

--new-line-format= formátum
A használt formátum az output egy sorára a második file-ból származik if-then-else formában.

--old-group-format= form´atum
A használt formátum az output-nál a sorok egy csoportjára az elsö file-ból származik if-then-else formában.

--old-line-format= formátum
A használt formátum az output egy sorára az elsö file-ból sz´armazik if-then-else formában.

-p
Megmutatja, hogy melyik C függvényben van minden változás benne.

-P
Amikor kónyvtarakat hasonlít össze, hogyha a file a kettö közul csak a másodikban van jelen, akkor láthato lesz a másikban is, de üresen.

--paginate
Keresztül megy az output-on pr hogy lapszámozza azt.

-q
Csak tájekoztat, hogy a file-ok külonböznek-e, nem részletezi ki a különbségeket.

-r
Amikor könyvtárakat hasonlítunk össze, rekurzívan összehasonlít valamennyi megtalált alkönyvtárat is.

--rcs
Kimenet RCS-formátumban; mint ahogy -f kivételt tesz az összes parancssal ami kikötéseket tesz a sorok számára.

--recursive
Amikor könyvtárakat hasonlítunk össze, rekurzívan összehasonlít valamennyi megtalált alkônyvtárat is.

--tájekoztatás-azonos-fileokrol

-s
Tájekoztat, ha a két file azonos.

-S file
Amikor könyvtárakat hasonlítunk össze, a file-al kezdi file . Ezt megszakadt összehasonlítás újrakezdése´re haszn´alhatjuk.

--sdiff-merge-assist
Extra inform´aciot ír ki, hogy segítséget nyújtson sdiff-hez. sdiff ezt az opciót akkor haszn´alja amikor fut diff . Ez az opcio nem lett a felhasználoknak közvetlen használatra tervezve.

--show-c-function
Megmutatja, hogy melyik az a C függvény, aminek minden változata bent van.

--show-function-line= regexp
A szöveg és egységes formátumban minden nagy különbségre megmutat néhány olyan korábbi sort, ami azonos regexppel.

--side-by-side
Beállítja az oldalról-oldalra output formátumot.

--speed-large-files
Heurisztikát használ az olyan nagy fileok sebességének kezelésére, amik számos elszórt kicsi különbséget tartalmaznak.

--starting-file= file
Ha könyvtárakat hasonlítunk össze, filelal kezdi az összehasonlítást. Ezt használja megszakított összehasonlítás újrakezdésénél.

--suppress-common-lines
Nem írja ki az azonos sorokat az oldalról-oldalra formátumnál.

-t
A tabulátorkat szóközökkel helyettesíti az output fileban, megõrizve ezzel a tabulátorok sorát az input fileban.

-T
Az output fileban a szöveg sorai elõtt tabulátort használ szóköz helyett normál vagy szöveg formátumnál azért, hogy a sorban a tabulátorok normálisan nézzenek ki.

--text
Szövegként kezel minden filet és összehasonlítja õket sorról-sorra, még ha nem is látszanak szövegnek.

-u
Beállítja az egységes formátumot.

--unchanged-group-format= format
Beállítja a format formátumot azoknak a soroknak a csoportjára, amelyek mindkét fileban if-then-else formátumban találhatóak.

--unchanged-line-format= format
Beállítja a format formátumot azokra a sorokra, amelyek mindkét fileban if-then-else formátumban találhatóak.

--unidirectional-new-file
Összehasonlítja a könyvtárakat.Ha egy file a két könyvtár közül csak a másodikban jelenik meg, akkor úgy veszi, hogy létezik, de nincs benne a másik könyvtárban.

-U lines
--unified[= lines ]

Beállítja az egységes output formátumot és megmutat lines (integer típusú) sort a szövegbõl, vagy három sort, ha lines nincs megadva. A hibátlan mûködés érdekében a patchnek szüksége van a szöveg legalább két sorára.

-v
--version
Kiírja a diff verziószámát.

-w
Kihagyja a szóközöket a sorok összehasonlítása közben.

-W columns
--width= columns
Az output fileban columns lesz a szélesség oldalról-oldalra formátumnál.

-x pattern
Amikor összehasonlítja a könyvtárakat, kihagyja azokat a fileokat és alkönyvtárakat, melyeknek a neve megegyezik a mintával (pattern).

-X file
Amikor könyvtárakat hasonlít össze, kihagyja azokat a fileokat és alkönyvtárakat, melyeknek a neve megegyezik bármely mintával a fileban.

-y
Beállítja az oldalról-oldalra output formátumot.

LÁSD MÉG
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).

VIZSGÁLAT
A 0 kilépési érték azt jelenti, hogy nem talált különbséget, 1 jelenti, hogy talált némi különbséget és a 2 a hibát jelenti.