Node:patch Options, Up:Invoking patch

### Options to `patch`

Here is a summary of all of the options that GNU `patch` accepts. See patch and Tradition, for which of these options are safe to use in older versions of `patch`.

Multiple single-letter options that do not take an argument can be combined into a single command line argument with only one dash.

`-b`
`--backup`
  Back up the original contents of each file, even if backups would normally not be made. See Backups.
`-B prefix`
`--prefix=prefix`
  Prepend prefix to backup file names. See Backup Names.
`--backup-if-mismatch`
  Back up the original contents of each file if the patch does not exactly match the file. This is the default behavior when not conforming to POSIX. See Backups.
`--binary`
  Read and write all files in binary mode, except for standard output and `/dev/tty`. This option has no effect on POSIX-conforming systems like GNU/Linux. On systems where this option makes a difference, the patch should be generated by `diff -a --binary`. See Binary.
`-c`
`--context`
  Interpret the patch file as a context diff. See patch Input.
`-d directory`
`--directory=directory`
  Make directory directory the current directory for interpreting both file names in the patch file, and file names given as arguments to other options. See patch Directories.
`-D name`
`--ifdef=name`
  Make merged if-then-else output using name. See If-then-else.
`--dry-run`
  Print the results of applying the patches without actually changing any files. See Dry Runs.
`-e`
`--ed`
  Interpret the patch file as an `ed` script. See patch Input.
`-E`
`--remove-empty-files`
  Remove output files that are empty after the patches have been applied. See Creating and Removing.
`-f`
`--force`
  Assume that the user knows exactly what he or she is doing, and do not ask any questions. See patch Messages.
`-F lines`
`--fuzz=lines`
  Set the maximum fuzz factor to lines. See Inexact.
`-g num`
`--get=num`
  If num is positive, get input files from a revision control system as necessary; if zero, do not get the files; if negative, ask the user whether to get the files. See Revision Control.
`--help`
  Output a summary of usage and then exit.
`-i patchfile`
`--input=patchfile`
  Read the patch from patchfile rather than from standard input. See patch Options.
`-l`
`--ignore-white-space`
  Let any sequence of blanks (spaces or tabs) in the patch file match any sequence of blanks in the input file. See Changed White Space.
`-n`
`--normal`
  Interpret the patch file as a normal diff. See patch Input.
`-N`
`--forward`
  Ignore patches that `patch` thinks are reversed or already applied. See also `-R`. See Reversed Patches.
`--no-backup-if-mismatch`
  Do not back up the original contents of files. This is the default behavior when conforming to POSIX. See Backups.
`-o file`
`--output=file`
  Use file as the output file name. See patch Options.
`-pnumber`
`--strip=number`
  Set the file name strip count to number. See patch Directories.
`--posix`
  Conform to POSIX, as if the `POSIXLY_CORRECT` environment variable had been set. See patch and POSIX.
`--quoting-style=word`
  Use style word to quote names in diagnostics, as if the `QUOTING_STYLE` environment variable had been set to word. See patch Quoting Style.
`-r reject-file`
`--reject-file=reject-file`
  Use reject-file as the reject file name. See Reject Names.
`-R`
`--reverse`
  Assume that this patch was created with the old and new files swapped. See Reversed Patches.
`-s`
`--quiet`
`--silent`
  Work silently unless an error occurs. See patch Messages.
`-t`
`--batch`
  Do not ask any questions. See patch Messages.
`-T`
`--set-time`
  Set the modification and access times of patched files from time stamps given in context diff headers, assuming that the context diff headers use local time. See Patching Time Stamps.
`-u`
`--unified`
  Interpret the patch file as a unified diff. See patch Input.
`-v`
`--version`
  Output version information and then exit.
`-V backup-style`
`--version=control=backup-style`
  Select the naming convention for backup file names. See Backup Names.
`--verbose`
  Print more diagnostics than usual. See patch Messages.
`-x number`
`--debug=number`
  Set internal debugging flags. Of interest only to `patch` patchers.
`-Y prefix`
`--basename-prefix=prefix`
  Prepend prefix to base names of backup files. See Backup Names.
`-z suffix`
`--suffix=suffix`
  Use suffix as the backup extension instead of `.orig` or `~`. See Backup Names.
`-Z`
`--set-utc`
  Set the modification and access times of patched files from time stamps given in context diff headers, assuming that the context diff headers use UTC. See Patching Time Stamps.