---
# System prepended metadata

title: Create patch file
tags: [patch, linux]

---

# Create patch file

###### tags: `linux`, `patch`

Basic example to use "patch" command.


#### create a patch file
```
diff -Naur <absolute path of old file > <absolute path of new file>
```
```
# create a reverse patch file (just swap new and old file)
diff -Naur <absolute path of  new file> <absolute path of old file>
```

#### apply a patch file
```
patch -r- -p0 -d / -N -i <absolute path of patch file>

# create a backup
patch -b -r- -p0 -d / -N -i <absolute path of patch file>
```

#### reverse a patched file
```
patch -R <absolute path of patched file> <absolute path of patch file>
```
Or, use "reverse patch file" to patch.

#### reverse patched file by move backup file (.orig) to the patched file name
```
for i in *.orig; do
    base=`basename ${i} .orig`
    mv $i $base
done
```


#### Reference
- https://www.gnu.org/software/diffutils/manual/html_node/Reversed-Patches.html
- https://www.manpagez.com/info/diff/diff_83.php