Visual Studio Code tips and tricks | BOD103
Tartalomjegyzék:
- Hogyan kell használni a
diff
parancsot - Normál formátum
- Kontextus formátuma
- Egységes formátum
- Nem veszi figyelembe az esetet
- Következtetés
diff
egy parancssori segédprogram, amely lehetővé teszi két fájl soronkénti összehasonlítását. Össze tudja hasonlítani a könyvtárak tartalmát.
A
diff
parancsot leggyakrabban egy olyan javítás létrehozására használják, amely tartalmazza a
patch
paranccsal alkalmazható egy vagy több fájl közötti különbségeket.
Hogyan kell használni a
diff
parancsot
A
diff
parancs szintaxisa a következő:
diff… FILES
A
diff
parancs több formátumban képes megjeleníteni a kimenetet, a leggyakoribb a normál, a kontextus és az egységes formátum. A kimenet információkat tartalmaz arról, hogy a fájlokban mely sorokat kell megváltoztatni, hogy azok azonosak legyenek. Ha a fájlok megegyeznek, akkor nem készül kimenet.
A parancs kimenetének fájlba mentéséhez használja az átirányítási operátort:
diff file1 file2 > patch
, a következő két fájlt fogjuk használni, hogy megmagyarázzuk, hogyan működik a
diff
parancs:
Ubuntu Arch Linux Debian CentOS Fedora
fájl2
Kubuntu Ubuntu Debian Arch Linux Centos Fedora
Normál formátum
A legegyszerűbb formában, amikor a
diff
parancsot két szövegfájlon fut, opció nélkül, normál formátumú kimenetet állít elő:
diff file1 file2
A kimenet így néz ki:
0a1 > Kubuntu 2d2 < Arch Linux 4c4, 5 < CentOS --- > Arch Linux > Centos
A normál kimeneti formátum egy vagy több részből áll, amelyek leírják a különbségeket. Minden szakasz így néz ki:
change-command < from-file-line… --- > to-file-line…
0a1
,
2d2
és
4c4, 5
változási parancsok. Minden változási parancs a következőket tartalmazza, balról jobbra:
- Az első fájl sorszáma vagy sorainak tartománya.Különleges karakter. A második fájl sorszáma vagy sorainak sorozata.
A változás karakter lehet a következők egyikének:
-
a
- Adja hozzá a sorokat.c
- Vonalak módosítása.d
- törölje a sorokat.
A módosítási parancsot a teljes sorok követik, amelyeket eltávolítanak (
<
) és hozzáadnak a fájlhoz (
>
).
Magyarázza el a kimenetet:
-
0a1
- Adja hozzá a második fájl1
sorát a fájl1 elejéhez (a0
sor után).-
> Kubuntu
- A második sor sora, amelyet hozzáadunk az első fájlhoz a fentiek szerint.
2d2
- Törölje az első fájl2
sorát. Ad
szimbólum utáni2
azt jelenti, hogy ha a sort nem törli, akkor a második fájl2
sorában jelenik meg.-
< Arch Linux
- a törölt sor.
4c4, 5
- Cserélje ki (módosítsa) az első fájl5
sorát a második fájl4-5
soraira.-
< CentOS
- Az első cserélhető fájl sora.---
- elválasztó.> Arch Linux
és> Centos
- Vonalak a második fájlból, amely az első fájl sorát váltja fel.
-
Kontextus formátuma
A környezet kimeneti formátumának használatakor a
diff
parancs több összefüggési sort jelenít meg a sorok között, amelyek különböznek a fájlok között.
A
-c
opció azt mondja a
diff
, hogy a kimenetet környezet formátumban hozzák létre:
diff -c file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 6 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 7 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
A kimenet a nevekkel és az időbélyegzővel kezdődik, ha összehasonlítják a fájlokat, és egy vagy több szakaszban leírják a különbségeket. Minden szakasz így néz ki:
*************** *** from-file-line-numbers **** from-file-line… --- to-file-line-numbers ---- to-file-line…
-
from-file-line-numbers
ésto-file-line-numbers
- Az első és a második fájl sorai vagy vesszővel elválasztott sorok az első fájlban.from-file-line
to-file-line
- a különböző sorok és a kontextus sorai:- A két szóközzel kezdődő sor kontextus sora, a sor mindkét fájlban azonos. A mínusz szimbólummal (
-
) kezdődő sorok azok a sorok, amelyek nem felelnek meg a második fájlban. A második fájlban hiányzó sorok.A plusz szimbólummal (+
) kezdődő sorok azok a sorok, amelyek nem felelnek meg az első fájlban. Az első fájlban hiányzó sorok.A felkiáltójellel (!
) Kezdődő sorok azok a sorok, amelyeket két fájl között váltunk. Minden sorcsoport kezdődik!
az első fájlból a megfelelő egyezés található a második fájlban.
- A két szóközzel kezdődő sor kontextus sora, a sor mindkét fájlban azonos. A mínusz szimbólummal (
Magyarázza el a kimenet legfontosabb részeit:
- Ebben a példában csak egy rész található, amely leírja a különbségeket.
*** 1, 6 ****
és--- 1, 7 ----
megmutatja nekünk az ebben a szakaszban szereplő első és második fájl sorainak sorát.Ubuntu
,Debian
,Fedora
és a Az utolsó üres sor megegyezik mindkét fájlban. Ezek a sorok kettős szóközzel kezdődnek. Vonalak- Arch Linux
az első fájlból nem felel meg a második fájlnak. Bár ez a sor a második fájlban is létezik, a pozíciók különböznek.Line+ Kubuntu
a második fájlból semmi nem felel meg az elsõ fájlnak.Line! CentOS
! CentOS
az első fájlból és sorokból! Arch Linux
! Arch Linux
és! CentOS
A második fájlból származó! CentOS
megváltozik a fájlok között.
Alapértelmezés szerint a környezeti sorok száma alapértelmezés szerint három. Másik szám megadásához használja a
-C
(
--contexts
) opciót:
diff -C 1 file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 5 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 6 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
Egységes formátum
Az egységes kimeneti formátum a környezeti formátum továbbfejlesztett változata, és kisebb kimenetet eredményez.
A
-u
opcióval mondhatja el a
diff
hogy a kimenetet egységes formátumban nyomtassa:
diff -u file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian -CentOS +Arch Linux +Centos Fedora
A kimenet a fájlok nevével és időbélyegeivel kezdődik, és egy vagy több, a különbségeket leíró szakaszból áll. Az egyes szakaszok a következő formában vannak:
*************** @@ from-file-line-numbers to-file-line-numbers @@ line-from-files…
-
@@ from-file-line-numbers to-file-line-numbers @@
- az ebben a szakaszban található első és második fájl sorának sorszáma vagy sorozata.line-from-files
- a különböző sorok és a kontextus sorai:- A két szóközzel kezdődő sor kontextus sora, a két fájlban azonos sorok.A mínusz szimbólummal (
-
) kezdődő sorok azok az sorok, amelyeket eltávolítanak az első fájlból.A plusz szimbólummal (+
) kezdődő sorok az első fájlból hozzáadott sorok.
- A két szóközzel kezdődő sor kontextus sora, a két fájlban azonos sorok.A mínusz szimbólummal (
Nem veszi figyelembe az esetet
Mint a fenti példákban észreveheti, a
diff
parancs alapértelmezés szerint kis- és nagybetűk között érzékeny.
A
-i
opcióval mondhatja meg a
diff
hogy figyelmen kívül hagyja az esetet:
diff -ui file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian +Arch Linux CentOS Fedora
Következtetés
A különféle szövegfájlok összehasonlítása a Linux rendszergazdák egyik leggyakoribb feladata.
A
diff
parancs a fájlokat soronként összehasonlítja. További információkért írja be a
man diff
a terminálba.
Chmod parancs a linuxban (fájljogosultságok)
Linux alatt a fájlokhoz való hozzáférést a fájljogosultságokon, attribútumokon és tulajdonjogon keresztül kezelik. Ez az oktatóanyag ismerteti, hogyan lehet a chmod parancsot használni a fájlok és könyvtárak hozzáférési engedélyeinek megváltoztatásához.
Chgrp parancs a linuxban (csoport módosítása)
Linuxban minden fájl társítva van egy tulajdonoshoz és egy csoporthoz, és rendelkezik olyan engedélyekkel, amelyek meghatározzák, hogy mely felhasználók olvashatják, írhatják vagy végrehajthatják a fájlt. A chgrpc parancs megváltoztatja az adott fájlok csoporttulajdonát.
Cp parancs a linuxban (fájlok másolása)
A cp parancssori segédprogram a fájlok és könyvtárak másolására Unix és Linux rendszereken.