Kuidas rakendada plaastrit failile (ja luua plaastreid) Linuxis
Linux plaaster
käsuga saate muudatused ühest failikomplektist teise kiiresti ja ohutult üle kanda. Õppige, kuidas seda kasutada plaaster
lihtsal viisil.
Paranduse ja diffi käsud
Kujutage ette, et teie arvutis on tekstifail. Saate selle tekstifaili muudetud versiooni kelleltki teiselt. Kuidas saate kõik muudatused muudetud failist kiiresti algsesse faili üle kanda? See on koht plaaster
ja dif
mängu tulema. plaaster
ja dif
on Linuxis ja teistes Unixi-laadsetes operatsioonisüsteemides, näiteks macOS-is.
The dif
käsk uurib faili kahte erinevat versiooni ja loetleb nende vahelised erinevused. Erinevusi saab salvestada faili, mida nimetatakse plaasterfailiks.
Theplaaster
käsuga saab lugeda patch-faili ja kasutada sisu juhiste komplektina. Neid juhiseid järgides muudetakse muudetud failis tehtud muudatusi algfailis.
Kujutage nüüd ette, et see protsess toimub terve tekstifailide kataloogiga. Kõik ühe korraga. See on võimu plaaster
.
Mõnikord ei saadeta teile muudetud faile. Kõik, mis teile saadetakse, on plaasterfail. Miks saata kümneid faile ümmarguseks, kui saate ühe faili saata või ühe faili hõlpsaks allalaadimiseks postitada?
Mida te plaasterfailiga teete, et oma faile tegelikult lappida? Peale selle, et see on peaaegu keele keerutaja, on see ka hea küsimus. Tutvustame teid selles artiklis.
The plaaster
käsku kasutavad kõige sagedamini inimesed, kes töötavad tarkvara lähtekoodifailidega, kuid see töötab võrdselt hästi kõigi tekstifailide komplektidega, olenemata nende otstarbest, lähtekoodist või mitte.
SEOTUD:Kuidas võrrelda kahte tekstifaili Linuxi terminalis
Meie stsenaarium
Selle stsenaariumi korral oleme kataloogis nimega töö, mis sisaldab veel kahte kataloogi. Ühte nimetatakse töötamine, ja teist nimetatakse hiljemalt. Töökataloog sisaldab lähtekoodifailide komplekti. Viimases kataloogis on nende lähtekoodifailide uusim versioon, millest mõnda on muudetud.
Ohutuse tagamiseks on töökataloog tekstifailide praeguse versiooni koopia. See pole nende ainus eksemplar.
Faili kahe versiooni erinevuste leidmine
The dif
käsk leiab erinevused kahe faili vahel. Selle vaiketoiming on terminaliaknas loetletud muudetud read.
Üks fail nimetatakse släng.c
. Võrdleme töökataloogi versiooni uusima kataloogi versiooniga.
The -u
(ühtne) variant ütleb dif
loetleda ka mõned muutmata tekstiread iga muudetud sektsiooni eel ja järel. Neid ridu nimetatakse kontekstiliinideks. Nad aitavadplaaster
käsk leidke täpselt koht, kus tuleb algses failis muudatusi teha.
Pakume failide nimed nii dif
teab, milliseid faile võrrelda. Esmalt on loetletud algne fail ja seejärel muudetud fail. See on käsk, mille me välja anname dif
:
diff -u töötav / släng.c uusim / släng.c
dif
toodab väljundi loendi, mis näitab failide erinevusi. Kui failid oleksid identsed, ei oleks väljundit üldse loetletud. Seda tüüpi väljundi nägemine lehelt dif
kinnitab, et kahe failiversiooni vahel on erinevusi ja et algne fail vajab lappimist.
Plaastri FILE tegemine
Nende erinevuste parandamiseks plaasterfailis kasutage järgmist käsku. See on sama käsk nagu ülal, väljundiga dif
suunatakse faili nimega slang.patch.
diff -u working / slang.c latest / slang.c> slang.patch
Plaasterfaili nimi on meelevaldne. Võite seda nimetada mis iganes soovite. "Patch" laienduse andmine on hea mõte; aga kuna see teeb selgeks, mis tüüpi fail see on.
Tegemaplaaster
toimige plaasterfaili järgi ja muutke faili working / slang.c, kasutage järgmist käsku. The -u
(ühtne) valik võimaldab plaaster
tea, et plaasterfail sisaldab ühtseid kontekstiridu. Teisisõnu, kasutasime diff-ga valikut -u, seega kasutame -u
valikuga plaaster
.
plaaster -u töötab.lang.c -i släng.lapp
Kui kõik läheb hästi, on teile üks väljundrida plaaster
lappib faili.
Algse FIle varundamine
Me saame juhendada plaaster
parandatud failide varukoopia tegemiseks enne nende muutmist, kasutades-b
(varukoopia) valik. The -i
(sisestus) suvand ütleb plaaster kasutatava plaasterfaili nime:
plaaster -u -b töötab.lang.c -i släng.lapp
Fail on lappitud nagu varemgi, väljundis pole nähtavaid erinevusi. Kui aga uurite töökataloogi, näete, et see fail nimega slang.c.orig on loodud. Failide kuupäeva ja kellaaja templid näitavad, et slang.c.orig on algne fail ja slang.c on uus fail, mille on loonud plaaster
.
Diffi kasutamine kataloogidega
Me saame kasutada dif
plaasterfaili loomiseks, mis sisaldab kõiki erinevusi kahe kataloogi failide vahel. Seejärel saame seda plaasterfaili kasutada plaaster
et neid erinevusi rakendataks töökaustas olevatele failidele ühe käsuga.
Valikud, mida kasutame dif
on -u
(ühtne kontekst) variant, mida oleme varem kasutanud, -r
(rekursiivne) võimalus teha dif
uurige kõiki alamkatalooge ja -N
(uus fail) valik.
The -N
variant ütleb dif
kuidas käsitseda uusimas kataloogis olevaid faile, mis pole töökataloogis. See sunnib dif
panna juhiseid plaasterfaili nii, etplaaster
loob failid, mis asuvad viimases kataloogis, kuid puuduvad töökataloogist.
Valikud saab kokku panna nii, et need kasutaksid ühte sidekriipsu (-
).
Pange tähele, et pakume ainult kataloogide nimesid, me ei ütle seda dif
konkreetsete failide vaatamiseks:
diff -ruN working / latest /> slang.patch
Patch File'i sisse piilumine
Vaatame kiirelt plaasterfaili. Kasutame vähem
selle sisu vaadata.
Faili ülaosas on toodud slängi.c kahe versiooni erinevused.
Paigutusfaili allapoole kerides näeme, et see kirjeldab siis muudatusi teises failis nimega structs.h. See kinnitab, et plaasterfail sisaldab kindlasti mitme faili erinevate versioonide erinevusi.
Vaadake enne hüppamist
Suure failikogumi paigutamine võib olla veidi ärritav, nii et kasutame faili --kuivaga
võimalus kontrollida, kas kõik on korras, enne kui astume sammu ja pühendume muudatuste tegemisele.
The --kuivaga
variant ütleb plaaster
teha kõike peale failide reaalse muutmise. plaaster
teostab failides kõik lennueelsed kontrollid ja kui ilmneb mingeid probleeme, teatab ta neist. Mõlemal juhul pole ühtegi faili muudetud.
Kui probleemidest ei teatata, võime käsku korrata ilma --kuivaga
ja plaaster meie faile enesekindlalt.
The -d
(kataloogi) võimalus öelda plaaster
millises kataloogis töötada.
Pange tähele, et oleme mitte kasutades -i
(sisend) võimalus öelda plaaster
milline plaasterfail sisaldab juhiseid dif
. Selle asemel suuname plaasterfaili ümber plaaster
koos <
.
plaaster --dry-run -ruN -d töötab <slang.patch
Kogu kataloogist välja dif
leidis kaks lappimiseks mõeldud faili. Nende kahe faili muudatusi käsitlevad juhised on kontrollitud plaaster
ja probleemidest pole teatatud.
Lennueelsed kontrollid on korras; oleme stardiks valmis.
Kataloogi parandamine
Paigutuste tõeliseks rakendamiseks failides kasutame eelmist käsku ilma --kuivaga
valik.
plaaster -ruN -d töötab <släng.lapp
Seekord ei alga iga väljundi rida kontrollimisega, iga rida algab lappimisega.
Ja probleemidest ei teatata. Saame koostada oma lähtekoodi ja kasutame tarkvara uusimat versiooni.
Lahendage oma erinevused
See on ülekaalukalt kõige lihtsam ja ohutum viis kasutada plaaster
. Kopeerige oma sihtfailid kausta ja plaaster see kaust. Kopeerige need tagasi, kui olete rahul, et lappimisprotsess sai veatult lõpule viidud.