GNU/Linux >> Znalost Linux >  >> Linux

Úvod do příkazu diff

Příkaz diff z balíčku diffutils porovnává soubory řádek po řádku. Je to velmi užitečné, když chcete zkontrolovat, zda byly v souboru od poslední zálohy provedeny nedávné změny a jaké jsou. Stav ukončení 0 znamená, že nebyly nalezeny žádné rozdíly, 1 znamená, že byly nalezeny nějaké rozdíly, a 2 znamená potíže. A samozřejmě, pokud dojde ke změnám, diff vám je ukáže. Ale pojďme se podívat na několik příkladů.

Příklad 1:Oba soubory mají stejný obsah

Alice a Bob každý grilují a zveřejnili své menu. Abych se rozhodl, které menu by se mi líbilo nejvíce, mohl bych porovnat menu následovně:

$ diff menu1 menu2
$ echo $?
0
$ cat menu{1,2}
# The menu
* Spare Ribs
* Brisket
* Pulled Pork
# The menu
* Spare Ribs
* Brisket
* Pulled Pork

Víte, oba servírují žebírka, hrudí a trhané vepřové. Mezi oběma soubory není žádný rozdíl. Možná by Alice a Bob měli spojit své síly a uspořádat opravdu velké grilování.

Když Eva slyšela, že Alice a Bob pořádají večírky, začala žárlit a rozhodla se uspořádat také grilování. Její menu je dodáváno se souborem menu3 . Pojďme se podívat, jaké jsou rozdíly v její nabídce ve srovnání s jídelním lístkem Alice a Boba.

Příklad 2:Nyní se jedná o nápoje

$ diff menu1 menu3
4a5,8
> 
> # Drinks
> * Soda
> * Beer
$ echo $?
1
$

Nyní existují rozdíly. A s výstupem na prvním řádku diff nám říká, co je třeba přidat (a) do menu1 takže má stejný obsah jako menu3 . Takže 4a5,8 znamená, že musíte přidat několik řádků za řádek 4 v menu1 tak, aby to vypadalo jako řádky 5–8 v menu3 .

Při přepínání pozice souborů vypadá výstup jinak:

$ diff menu3 menu1
5,8d4
< 
< # Drinks
< * Soda
< * Beer

Nyní diff nám říká, že řádky 5-8 v menu3 musí být odstraněn (d), aby byl soubor identický s menu1 .

Příklad 3:Když je něco ke změně

Upravil jsem menu1menu2 znovu vypadat takto:

# The menu
* Spare Ribs
* Brisket
* Pulled Pork

# The menu
* Spare Ribs
* Pulled Pork
* Pulled Pork

Tentokrát diff nám ukáže, který řádek je třeba změnit (c), aby oba soubory vypadaly stejně:

$ diff menu1 menu2
3c3
< * Brisket
---
> * Pulled Pork

Zabalit to

diff Command je snadno a flexibilně použitelný nástroj pro porovnání souborů řádek po řádku. Podívejte se na diff(1) abyste zjistili, co dalšího lze udělat pomocí diff .

[ Chcete si vyzkoušet své schopnosti správce systému? Proveďte hodnocení dovedností ještě dnes. ]


Linux
  1. Úvod do používání tcpdump na příkazovém řádku Linuxu

  2. Úvod do linuxového příkazu chmod

  3. Zvládněte příkaz Linux ls

  1. Úvod do linuxového příkazu chown

  2. Úvod do GNU Core Utilities

  3. Úvod do příkazu alternatives v Linuxu

  1. Úvod do editoru vi

  2. Praktický pohled na příkaz xargs

  3. Vyhledejte příkaz v Linuxu