Příkaz diff se používá k porovnání textových souborů. Příkaz zobrazí dva soubory a rozdíly mezi nimi. Pomocí různých symbolů výstup navrhuje, jak můžete změnit jeden soubor, aby byl shodný s druhým. Každý symbol má zvláštní význam.
Symbol menší než (<) s řádkem za ním znamená, že řádek by měl být odstraněn z prvního souboru, protože se neobjevuje ve druhém. Symbol větší než (>) s řádkem za ním znamená, že řádek by měl být přidán z druhého souboru. Kromě toho příkaz diff také označuje čísla řádků pro každý soubor, který by byl ovlivněn operacemi mazání, přidávání a změn.
Syntaxe
Syntaxe příkazu diff je:
# diff {file name 1} {file name 2}
rozdíl MOŽNOSTI PŘÍKAZŮ
Příkaz diff má různé možnosti, které vám umožňují určit povahu výstupu.
Možnost | Popis |
---|---|
-b | Ignorujte rozdíly v rozestupech. |
-i | Rozdíly malých a velkých písmen ignorujte. |
-t | Rozbalte znaky tabulátoru ve výstupních řádcích. |
-w | Ignorujte rozdíly v mezerách a tabulátory. |
-c | Zobrazte seznam rozdílů se třemi řádky kontextu. |
-u | Výsledkem je jednotný režim, který představuje efektivnější formát. |
Příklady příkazů diff
1. Porovnejte soubory (uvádí změny, aby se `starý_soubor` změnil na `nový_soubor`):
# diff old_file new_file
2. Porovnejte soubory, ignorujte mezery:
# diff --ignore-all-space old_file new_file
3. Porovnejte soubory a ukažte rozdíly vedle sebe:
# diff --side-by-side old_file new_file
4. Porovnejte soubory a ukažte rozdíly v jednotném formátu (jak používá `git diff`):
# diff --unified old_file new_file
5. Porovnejte adresáře rekurzivně (zobrazí názvy různých souborů/adresářů a také změny provedené v souborech):
# diff --recursive old_directory new_directory
6. Porovnejte adresáře, zobrazí se pouze názvy souborů, které se liší:
# diff --recursive --brief old_directory new_directory
7. Vytvořte opravný soubor pro Git z rozdílů dvou textových souborů, přičemž neexistující soubory považujte za prázdné:
# diff --text --unified --new-file old_file new_file > diff.patch
8. diff může také porovnávat adresáře:
# diff dir1 dir2
který porovnává všechny soubory stejného jména v těchto adresářích a uvádí všechny soubory, které se vyskytují v jednom adresáři, ale ne ve druhém. Chcete-li rekurzivně porovnat celé hierarchie adresářů, použijte volbu -r:
# diff -r dir1 dir2
což vytváří (potenciálně masivní) zprávu o všech rozdílech.
Závěr
Příkaz diff porovnává dva soubory řádek po řádku nebo dva adresáře. Při porovnávání textových souborů může diff vytvářet podrobné zprávy o jejich rozdílech. U binárních souborů diff pouze hlásí, zda se liší nebo ne. Pro všechny soubory, pokud nejsou žádné rozdíly, diff nevytváří žádný výstup.