Patch: Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med 'Ge mej en översatt manunalsida för patch i media wiki format. OBS! Alla parametrar skall med och exempel på hur man använder patch om det finns skillnade mellan mac os och Linux, så skall detta belysas.') |
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
||
Rad 1: | Rad 1: | ||
== patch - Applicera ändringar från en patchfil == | |||
Kommandot `patch` används för att applicera ändringar från en patchfil till originalfiler. | |||
=== Syntax === | |||
patch [ALTERNATIV] [ORIGINALFIL [PATCHFIL]] | |||
=== Beskrivning === | |||
Kommandot `patch` läser en patchfil som innehåller skillnaderna mellan två versioner av en fil och applicerar dessa ändringar på originalfilen för att uppdatera den. Patchfiler skapas vanligtvis med `diff`-kommandot och används för att överföra ändringar mellan utvecklare. | |||
=== Alternativ === | |||
Kommandot `patch` stöder flera alternativ som kan användas för att justera dess beteende: | |||
* -b, --backup - Skapa säkerhetskopior av filer som kommer att ändras. | |||
* --backup-if-mismatch - Skapa säkerhetskopior endast om patchen inte exakt matchar. | |||
* --binary - Behandla filer som binära. | |||
* -c, --context - Behandla patchfilen som en kontextdiff. | |||
* -d, --directory=KATALOG - Ändra till katalog KATALOG innan patchning. | |||
* -D, --ifdef=NAME - Generera #ifdef NAME / #endif block för varje förändring. | |||
* -e, --ed - Behandla patchfilen som en ed-skript. | |||
* -E, --remove-empty-files - Ta bort tomma filer efter patchning. | |||
* -f, --force - Tvinga applicering av patchen oavsett försök att matcha. | |||
* -F, --fuzz=NUM - Tillåt NUM linjers osäkerhet vid matchning. | |||
* -i, --input=FIL - Läs patchen från filen FIL. | |||
* -l, --ignore-whitespace - Ignorera vita tecken vid matchning. | |||
* --merge - Använd tredjeparts merge-strategi. | |||
* -N, --forward - Applicera endast patchen om originalet inte redan är patchat. | |||
* -o, --output=FIL - Skriv den patchade filen till FIL. | |||
* -p, --strip=NUM - Ta bort NUM ledande katalogkomponenter från filnamnen i patchen. | |||
* -r, --reject-file=FIL - Skriv bortkastade patchar till FIL. | |||
* -R, --reverse - Applicera patchen i omvänd ordning. | |||
* --remove-empty-files - Ta bort tomma filer efter patchning. | |||
* -s, --quiet - Tyst körning, visa inte meddelanden om applicerade patchar. | |||
* -t, --batch - Kör i batch-läge utan att fråga om interaktion. | |||
* -u, --unified - Behandla patchfilen som en unified diff. | |||
* -v, --version - Visa versionsinformation och avsluta. | |||
* -V, --version-control=METOD - Välj metod för säkerhetskopiering. | |||
* -x, --debug - Visa felsökningsinformation. | |||
* -Y, --only-verify - Verifiera patchen utan att applicera den. | |||
* -z, --suffix=SUFFIX - Använd SUFFIX för säkerhetskopior. | |||
* --help - Visa hjälpmeddelande och avsluta. | |||
=== Exempel === | |||
Här är några praktiska exempel som visar hur du kan använda `patch`-kommandot: | |||
* För att applicera en patch på en fil: | |||
<code> | |||
patch < patchfil.diff | |||
</code> | |||
* För att applicera en patch med en specifik originalfil: | |||
<code> | |||
patch originalfil < patchfil.diff | |||
</code> | |||
* För att applicera en patch i omvänd ordning: | |||
<code> | |||
patch -R < patchfil.diff | |||
</code> | |||
* För att ignorera vita tecken vid matchning: | |||
<code> | |||
patch -l < patchfil.diff | |||
</code> | |||
* För att ta bort ledande katalogkomponenter från filnamnen i patchen: | |||
<code> | |||
patch -p1 < patchfil.diff | |||
</code> | |||
=== Skillnader mellan macOS och Linux === | |||
Det finns några skillnader att tänka på när man använder `patch` på macOS jämfört med Linux: | |||
* Tillgänglighet: `patch`-kommandot är tillgängligt på både macOS och Linux. På båda plattformarna är `patch` en del av standardverktygen. | |||
* Alternativ: De flesta alternativ som finns på `patch` är tillgängliga på både macOS och Linux, men det rekommenderas att konsultera `man`-sidan på respektive plattform för att bekräfta tillgängliga alternativ och eventuella skillnader. | |||
Exempel på att använda `patch` på macOS: | |||
* För att applicera en patch på en fil: | |||
<code> | |||
patch < patchfil.diff | |||
</code> | |||
Det är alltid bra att konsultera `man`-sidan för `patch` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används. | |||
=== Felsökning === | |||
Om du får ett felmeddelande när du använder `patch`, kontrollera följande: | |||
* Att du använder rätt syntax och alternativ för ditt specifika kommando. | |||
* Att patchfilen och originalfilen du försöker använda existerar och är tillgängliga. | |||
* Att du har nödvändiga behörigheter för att ändra filerna. | |||
=== Se även === | |||
* [[diff]] - Jämför filskillnader rad för rad. | |||
* [[cmp]] - Jämför två filer byte för byte. | |||
* [[comm]] - Jämför två sorterade filer rad för rad. | |||
=== Källor === | |||
* [https://man7.org/linux/man-pages/man1/patch.1.html patch manual (Linux)] | |||
* [https://www.gnu.org/software/diffutils/manual/html_node/patch-Invocation.html GNU Diffutils manual - patch] | |||
* [https://ss64.com/osx/patch.html patch manual (macOS)] | |||
[[Kategori:Linuxkommandon]] |
Versionen från 29 maj 2024 kl. 07.21
patch - Applicera ändringar från en patchfil
Kommandot `patch` används för att applicera ändringar från en patchfil till originalfiler.
Syntax
patch [ALTERNATIV] [ORIGINALFIL [PATCHFIL]]
Beskrivning
Kommandot `patch` läser en patchfil som innehåller skillnaderna mellan två versioner av en fil och applicerar dessa ändringar på originalfilen för att uppdatera den. Patchfiler skapas vanligtvis med `diff`-kommandot och används för att överföra ändringar mellan utvecklare.
Alternativ
Kommandot `patch` stöder flera alternativ som kan användas för att justera dess beteende:
- -b, --backup - Skapa säkerhetskopior av filer som kommer att ändras.
- --backup-if-mismatch - Skapa säkerhetskopior endast om patchen inte exakt matchar.
- --binary - Behandla filer som binära.
- -c, --context - Behandla patchfilen som en kontextdiff.
- -d, --directory=KATALOG - Ändra till katalog KATALOG innan patchning.
- -D, --ifdef=NAME - Generera #ifdef NAME / #endif block för varje förändring.
- -e, --ed - Behandla patchfilen som en ed-skript.
- -E, --remove-empty-files - Ta bort tomma filer efter patchning.
- -f, --force - Tvinga applicering av patchen oavsett försök att matcha.
- -F, --fuzz=NUM - Tillåt NUM linjers osäkerhet vid matchning.
- -i, --input=FIL - Läs patchen från filen FIL.
- -l, --ignore-whitespace - Ignorera vita tecken vid matchning.
- --merge - Använd tredjeparts merge-strategi.
- -N, --forward - Applicera endast patchen om originalet inte redan är patchat.
- -o, --output=FIL - Skriv den patchade filen till FIL.
- -p, --strip=NUM - Ta bort NUM ledande katalogkomponenter från filnamnen i patchen.
- -r, --reject-file=FIL - Skriv bortkastade patchar till FIL.
- -R, --reverse - Applicera patchen i omvänd ordning.
- --remove-empty-files - Ta bort tomma filer efter patchning.
- -s, --quiet - Tyst körning, visa inte meddelanden om applicerade patchar.
- -t, --batch - Kör i batch-läge utan att fråga om interaktion.
- -u, --unified - Behandla patchfilen som en unified diff.
- -v, --version - Visa versionsinformation och avsluta.
- -V, --version-control=METOD - Välj metod för säkerhetskopiering.
- -x, --debug - Visa felsökningsinformation.
- -Y, --only-verify - Verifiera patchen utan att applicera den.
- -z, --suffix=SUFFIX - Använd SUFFIX för säkerhetskopior.
- --help - Visa hjälpmeddelande och avsluta.
Exempel
Här är några praktiska exempel som visar hur du kan använda `patch`-kommandot:
- För att applicera en patch på en fil:
patch < patchfil.diff
- För att applicera en patch med en specifik originalfil:
patch originalfil < patchfil.diff
- För att applicera en patch i omvänd ordning:
patch -R < patchfil.diff
- För att ignorera vita tecken vid matchning:
patch -l < patchfil.diff
- För att ta bort ledande katalogkomponenter från filnamnen i patchen:
patch -p1 < patchfil.diff
Skillnader mellan macOS och Linux
Det finns några skillnader att tänka på när man använder `patch` på macOS jämfört med Linux:
- Tillgänglighet: `patch`-kommandot är tillgängligt på både macOS och Linux. På båda plattformarna är `patch` en del av standardverktygen.
- Alternativ: De flesta alternativ som finns på `patch` är tillgängliga på både macOS och Linux, men det rekommenderas att konsultera `man`-sidan på respektive plattform för att bekräfta tillgängliga alternativ och eventuella skillnader.
Exempel på att använda `patch` på macOS:
- För att applicera en patch på en fil:
patch < patchfil.diff
Det är alltid bra att konsultera `man`-sidan för `patch` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.
Felsökning
Om du får ett felmeddelande när du använder `patch`, kontrollera följande:
- Att du använder rätt syntax och alternativ för ditt specifika kommando.
- Att patchfilen och originalfilen du försöker använda existerar och är tillgängliga.
- Att du har nödvändiga behörigheter för att ändra filerna.
Se även
- diff - Jämför filskillnader rad för rad.
- cmp - Jämför två filer byte för byte.
- comm - Jämför två sorterade filer rad för rad.