这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令补丁,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
补丁 - 将差异文件应用于原始文件
概要
补丁 [选项[原始文件 [补丁文件]]
但通常只是
补丁 -pNUM <补丁文件
商品描述
补丁 需要一个补丁文件 补丁文件 包含由产生的差异列表 差异
程序并将这些差异应用到一个或多个原始文件,生成修补程序
版本。 通常,修补版本会代替原始版本。 备份可以
被制作; 见 -b or --备份 选项。 要打补丁的文件名通常是
取自补丁文件,但如果只有一个文件要打补丁,则可以指定
在命令行上作为 原始文件.
启动时,补丁会尝试确定差异列表的类型,除非被否决
由 -c (- 语境), -e (--编辑), -n (- 普通的), 要么 -u (- 统一) 选项。 上下文差异
(旧式、新式和统一)和普通差异由 补丁 程序
本身,而 ed 差异只是简单地提供给 ed(1) 通过管道编辑器。
补丁 尝试跳过任何前导垃圾,应用差异,然后跳过任何尾随
垃圾。 因此,您可以将包含差异列表的文章或消息提供给 补丁,
它应该工作。 如果整个差异缩进一致的数量,如果行结束
在 CRLF 中,或者如果 diff 通过在前面加上“- "到线
从...开始 ”-" 按照 Internet RFC 934 的规定,这会被考虑在内。在
删除缩进或封装,以开头的行 # 被忽略,因为它们是
视为评论。
使用上下文差异,并在较小程度上使用正常差异, 补丁 可以检测到
补丁中提到的行号不正确,并试图找到正确的位置
应用补丁的每一块。 作为第一个猜测,它需要提到的行号
大块,加上或减去用于应用前一个大块的任何偏移量。 如果那不是
正确的地方, 补丁 向前和向后扫描一组与
大块中给出的上下文。 第一的 补丁 寻找上下文所有行的地方
比赛。 如果没有找到这样的地方,这是一个上下文差异,最大的模糊因子是
设置为 1 或更多,然后进行另一次扫描,忽略第一行和最后一行
语境。 如果失败,并且最大模糊因子设置为 2 或更多,则前两个
并忽略最后两行上下文,并进行另一次扫描。 (默认最大值
模糊因子为 2。)
前缀上下文少于后缀上下文(应用模糊后)的帅哥必须在
如果它们的第一行号是 1,则文件的开头。具有更多前缀上下文的帅哥
后缀上下文(应用模糊后)必须在文件末尾应用。
If 补丁 找不到安装那个补丁的地方,它把这个补丁放到一个
拒绝文件,通常是输出文件的名称加上一个 .rej 后缀,或 # if
.rej 会生成一个太长的文件名(如果甚至附加单个字符 #
使文件名太长,然后 # 替换文件名的最后一个字符)。
被拒绝的大块以统一或上下文差异格式出现。 如果输入是正常的
diff,许多上下文都是空的。 拒绝中的大块头上的行号
文件可能与补丁文件中的不同:它们反映了补丁的大致位置
认为失败的帅哥属于新文件而不是旧文件。
当每个大块完成时,你会被告知大块是否失败,如果失败,哪一行(在
新文件) 补丁 认为大块头应该继续。 如果大块安装在不同的
从 diff 中指定的行号开始,您将被告知偏移量。 单个大
抵消 五月 表明一个大块头安装在错误的地方。 您还会被告知如果
模糊因子用于进行匹配,在这种情况下,您也应该稍微
可疑的。 如果 --详细 给出了选项,你还会被告知匹配的帅哥
究竟。
如果没有原始文件 原文件 在命令行中指定, 补丁 试图找出
使用以下规则,从最前面的垃圾中获取要编辑的文件的名称。
首先, 补丁 获取候选文件名的有序列表,如下所示:
· 如果标题是上下文差异的标题, 补丁 取旧文件名和新文件名
标题。 如果名称没有足够的斜杠来满足 -pNUM or
--条带=NUM 选项。 名字 的/ dev / null的 也被忽略。
· 如果有 指数: 在前导垃圾行中,如果旧名称和新名称
都缺席或如果 补丁 符合POSIX, 补丁 取名字 指数:
线。
· 出于以下规则的目的,候选文件名被认为是
在顺序(旧,新,索引)中,无论它们出现在标题中的顺序如何。
然后 补丁 从候选列表中选择一个文件名,如下所示:
· 如果存在某些命名文件, 补丁 如果符合 POSIX,则选择名字,
否则最好的名字。
· If 补丁 不会忽略 RCS、ClearCase、Perforce 和 SCCS(请参阅 -g NUM or
--获取=NUM 选项),并且不存在命名文件,但存在 RCS、ClearCase、Perforce 或 SCCS
找到主人, 补丁 选择带有 RCS、ClearCase、Perforce、
或 SCCS 主。
· 如果没有命名文件存在,没有找到 RCS、ClearCase、Perforce 或 SCCS 主文件,一些
给出了名字, 补丁 不符合 POSIX,并且补丁似乎创建了一个
文件, 补丁 选择需要创建最少目录的最佳名称。
· 如果上述试探法没有产生文件名,则要求您提供文件名
要修补的文件,以及 补丁 选择那个名字。
确定 世界上最好的 一个非空的文件名列表, 补丁 首先取所有名字
路径名组件最少; 其中,然后将所有名称与
最短的基名; 其中,它采用所有最短的名字; 最后,需要
剩下的第一个名字。
此外,如果前导垃圾包含 先决条件: 线, 补丁 取第一个词
从先决条件行(通常是版本号)并检查原始文件
看看能不能找到那个词。 如果不, 补丁 在继续之前要求确认。
所有这一切的结果是,您应该能够说,在新闻界面中,
类似于以下内容:
| 补丁 -d /usr/src/本地/blurfl
并修补一个文件 模糊 目录直接来自包含补丁的文章。
如果补丁文件包含多个补丁, 补丁 尝试应用它们中的每一个,好像
它们来自单独的补丁文件。 这意味着,除其他外,假设
必须为每个差异列表确定要修补的文件的名称,并且
每个差异列表之前的垃圾包含有趣的东西,例如文件名和
修订级别,如前所述。
配置
-b or --备份
制作备份文件。 也就是说,在修补文件时,改为重命名或复制原始文件
去除它。 见 -V or --版本控制 有关如何备份的详细信息的选项
文件名被确定。
--如果不匹配则备份
如果补丁与文件不完全匹配并且备份不匹配,则备份文件
另有要求。 这是默认设置,除非 补丁 符合POSIX。
--如果不匹配则不备份
如果补丁与文件不完全匹配并且备份是
没有其他要求。 这是默认值,如果 补丁 符合POSIX。
-B 首选 or --前缀=首选
使用 简单 确定备份文件名的方法(请参阅 -V 方法 or
--版本控制 方法 选项),并附加 首选 生成文件时的文件名
备份文件名。 例如,与 -B /垃圾/ 简单的备份文件名
源代码/补丁/util.c is /垃圾/src/补丁/util.c.
--二进制
以二进制模式写入所有文件,标准输出和 /开发/ tty. 读书时,
禁用将 CRLF 行结尾转换为 LF 行结尾的启发式方法。 这个
应用在非 POSIX 系统上生成的补丁时,需要在 POSIX 系统上使用该选项
到非 POSIX 文件。 (在 POSIX 系统上,文件读写从不变换行
结局。 在 Windows 上,默认情况下读取和写入会转换行尾,并修补
应该由 差异 --二进制 当行尾很重要时。)
-c or - 语境
将补丁文件解释为普通的上下文差异。
-d DIR or --目录=DIR
切换到目录 DIR 立即,在做任何其他事情之前。
-D 定义 or --ifdef=定义
使用 #ifdef ... #ENDIF 构造以标记更改,使用 定义 作为区分
符号。
--试运行
在不实际更改任何文件的情况下打印应用补丁的结果。
-e or --编辑
将补丁文件解释为 ed 脚本。
-E or --删除空文件
删除应用补丁后为空的输出文件。 通常这个
选项是不必要的,因为 补丁 可以检查标题上的时间戳
确定打补丁后文件是否应该存在。 但是,如果输入不是
上下文差异或如果 补丁 符合POSIX, 补丁 不删除空补丁
文件,除非给出了这个选项。 什么时候 补丁 删除一个文件,它也试图
删除任何空的祖先目录。
-f or - 力量
假设用户确切地知道他或她在做什么,并且不问任何
问题。 跳过标题没有说明要修补哪个文件的补丁; 修补
文件,即使它们的版本不正确 先决条件: 补丁中的线; 和
假设补丁不会被反转,即使它们看起来像它们。 这个选项做
不压制评论; 用 -s 对于这一点。
-F NUM or --模糊=NUM
设置最大模糊因子。 此选项仅适用于具有上下文的差异,并且
原因 补丁 在寻找地方时忽略多行上下文
安装一个大块头。 请注意,较大的模糊因子会增加出现错误补丁的几率。
默认的模糊因子是 2。一个大于或等于数量的模糊因子
上下文差异中的上下文行,通常为 3,忽略所有上下文。
-g NUM or --获取=NUM
此选项控制 补丁当文件受 RCS 或 SCCS 控制时的操作,并且
不存在或只读且与默认版本匹配,或当文件在
ClearCase 或 Perforce 控件并不存在。 如果 NUM 是积极的, 补丁 得到(或
检出)来自版本控制系统的文件; 如果为零, 补丁 忽略 RCS,
ClearCase、Perforce 和 SCCS 并且没有获取文件; 如果是否定的, 补丁 问
用户是否获取文件。 此选项的默认值由
的价值 补丁获取 如果设置了环境变量; 如果不是,则默认值为
零。
- 帮帮我
打印选项摘要并退出。
-i 补丁文件 or --输入=补丁文件
阅读补丁 补丁文件。 如果 补丁文件 is -,从标准输入中读取,
默认。
-l or --忽略空白
松散地匹配模式,以防文件中的制表符或空格被删除。 任何
补丁文件中一个或多个空白的序列匹配原始文件中的任何序列
文件,行尾的空白序列将被忽略。 正常字符必须
仍然完全匹配。 上下文的每一行仍必须与原始行中的一行匹配
文件中。
- 合并 or --merge=合并 or --合并=差异3
将补丁文件合并到原始文件中,类似于 差异3(1)或 合并(1). 如果一个
发现冲突, 补丁 输出警告并将冲突括起来 <<<<<< 和
>>>>>>> 线。 典型的冲突如下所示:
<<<<<<
生产线 在 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 原版的 文件
|||||||
原版的 生产线 在 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 补丁
=======
新 生产线 在 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 补丁
>>>>>>>
的可选参数 - 合并 确定冲突的输出格式:diff3
格式显示 ||||||| 带有补丁中原始线条的部分; 在合并中
格式,缺少此部分。 合并格式是默认的。
这个选项意味着 - 向前 并且不采取 --模糊=NUM 选项考虑在内。
-n or - 普通的
将补丁文件解释为普通差异。
-N or - 向前
当补丁不适用时,补丁通常会检查补丁是否看起来像
颠倒了。 这 - 向前 选项阻止了这一点。 也可以看看 -R.
-o 输出文件 or --输出=输出文件
将输出发送到 输出文件 而不是修补文件到位。 如果出现以下情况,请不要使用此选项
输出文件 是要修补的文件之一。 什么时候 输出文件 is -, 将输出发送到标准
输出,并将通常会进入标准输出的任何消息发送到标准
错误。
-pNUM or --条带=NUM
剥离包含的最小前缀 NUM 中找到的每个文件名的前导斜杠
补丁文件。 一个或多个相邻斜线的序列算作一个
削减。 这控制如何处理补丁文件中找到的文件名,以防万一
将您的文件保存在与发送补丁的人不同的目录中。 为了
例如,假设补丁文件中的文件名是
/u/霍华德/src/blurfl/blurfl.c
设置 -p0 给出未修改的整个文件名, -p1 给
你/霍华德/src/blurfl/blurfl.c
没有前导斜线, -p4 给
模糊/blurfl.c
并且没有指定 -p 完全只是给你 模糊. 无论你最终得到什么
对于当前目录或指定的目录 -d 选项。
--posix
更严格地符合 POSIX 标准,如下所示。
· 直观文件时,从列表(旧、新、索引)中取出第一个现有文件
来自差异标头的名称。
· 不要删除修补后的空文件。
· 不要询问是否从 RCS、ClearCase、Perforce 或 SCCS 获取文件。
· 要求所有选项都位于命令行中的文件之前。
· 不匹配时不要备份文件。
--引用风格=字
使用风格 字 引用输出名称。 这 字 应该是以下之一:
文字
按原样输出名称。
壳 引用 shell 的名称,如果它们包含 shell 元字符或会导致
模糊的输出。
壳总是
引用 shell 的名称,即使它们通常不需要引用。
c 引用 C 语言字符串的名称。
逃生 报价与 c 除了省略周围的双引号字符。
您可以指定默认值 --引用风格 与环境的选择
变量 引用_STYLE. 如果未设置该环境变量,则默认值为
壳.
-r 拒绝文件 or --拒绝文件=拒绝文件
将拒绝放入 拒绝文件 而不是默认值 .rej 文件。 什么时候 拒绝文件 is -,
丢弃拒绝。
-R or - 逆转
假设这个补丁是在旧文件和新文件交换的情况下创建的。 (是的,我是
害怕偶尔会发生,人性就是这样。) 补丁 尝试
在应用之前交换每个大块头。 拒绝以交换格式出现。
- -R 选项不适用于 ed diff 脚本因为太少了
信息来重建反向操作。
如果补丁的第一个块失败, 补丁 反转大块看是否可以应用
那样。 如果可以,系统会询问您是否要拥有 -R 选项集。 如果它
不能,补丁继续正常应用。 (注意:此方法无法检测到
如果它是一个普通的差异并且第一个命令是一个附加(即它
应该是一个删除)因为附加总是成功的,因为一个空
上下文匹配任何地方。 幸运的是,大多数补丁添加或更改行而不是删除
他们,所以大多数反向正常差异都以删除开始,删除失败,触发
启发式。)
--只读=行为
尝试修改只读文件时按要求进行操作: 忽略 潜力
问题, 警告 关于它(默认),或 失败.
--拒绝格式=格式
生成指定的拒绝文件 格式 (或者 上下文 or 统一)。 没有这个
选项,如果输入补丁是那个,被拒绝的帅哥会以统一的差异格式出现
格式,否则为普通上下文差异形式。
-s or - 沉默的 or - 安静的
静默工作,除非发生错误。
--跟随符号链接
查找输入文件时,请遵循符号链接。 替换符号链接,
而不是修改符号链接指向的文件。 Git 风格的补丁
符号链接将不再适用。 存在此选项是为了向后兼容
与以前版本的补丁; 不鼓励使用它。
-t or --批处理
抑制问题,如 -f,但做一些不同的假设:跳过补丁
标头不包含文件名(与 -f); 跳过文件具有的补丁
错误的版本 先决条件: 补丁中的线; 并假设补丁是
如果它们看起来像,则颠倒过来。
-T or - 设置时间
根据中给出的时间戳设置修补文件的修改和访问时间
上下文差异标头。 除非在时间戳中指定,否则假设上下文
差异标头使用本地时间。
不建议将此选项与不包含时区的时间戳一起使用,
因为使用本地时间的补丁不容易被其他时区的人使用,
并且因为当本地时钟在此期间向后移动时本地时间戳是不明确的
夏令时调整。 确保时间戳包括时区,或
使用 UTC 生成补丁并使用 -Z or --设置 UTC 选项。
-u or - 统一
将补丁文件解释为统一的上下文差异。
-v or - 版
打印 补丁的修订标题和补丁级别,然后退出。
-V 方法 or --版本控制=方法
使用 VHDL 语言编写 方法 以确定备份文件名。 该方法也可以由
补丁版本控制 (或者,如果未设置,则 版本控制) 环境
变量,它被这个选项覆盖。 方法不影响是否
制作备份文件; 它只影响制作的任何备份文件的名称。
价值 方法 就像 GNU Emacs 的“版本控制”变量; 补丁 还
识别更具描述性的同义词。 的有效值 方法 是(独特的
接受缩写):
现有 or 零
对已经拥有它们的文件进行编号备份,否则进行简单备份。
这是默认设置。
编号 or t
进行编号备份。 编号的备份文件名 F is F.~N~ 哪里 N 是
版本号。
简单 or 决不要
进行简单的备份。 这 -B or - 字首, -Y or --basename-前缀及 -z or
- 后缀 options 指定简单备份文件名。 如果这些选项都不是
给定,然后使用一个简单的备份后缀; 它是价值
SIMPLE_BACKUP_SUFFIX 如果设置了环境变量,并且是 .orig 除此以外。
带编号或简单的备份,如果备份文件名太长,备份后缀
~ 改为使用; 如果甚至附加 ~ 会使名字太长,然后 ~ 取代
文件名的最后一个字符。
--详细
输出有关正在完成的工作的额外信息。
-x NUM or --调试=NUM
仅将感兴趣的内部调试标志设置为 补丁 修补程序。
-Y 首选 or --basename-前缀=首选
使用 简单 确定备份文件名的方法(请参阅 -V 方法 or
--版本控制 方法 选项)和前缀 首选 到文件名的基名,当
生成其备份文件名。 例如,与 -Y .del/ 简单的备份文件
的名称 源代码/补丁/util.c is src/补丁/.del/util.c.
-z 后缀 or --后缀=后缀
使用 简单 确定备份文件名的方法(请参阅 -V 方法 or
--版本控制 方法 选项),并使用 后缀 作为后缀。 例如,与 -z -
备份文件名 源代码/补丁/util.c is src/补丁/util.c-.
-Z or --设置 UTC
根据中给出的时间戳设置修补文件的修改和访问时间
上下文差异标头。 除非在时间戳中指定,否则假设上下文差异
标头使用协调世界时(UTC,通常称为 GMT)。 另见 -T or
- 设置时间 选项。
- -Z or --设置 UTC 和 -T or - 设置时间 选项通常不会设置文件的
如果文件的原始时间与补丁标头中给出的时间不匹配,则为时间,或
如果其内容与补丁不完全匹配。 然而,如果 -f or - 力量 选项
给定,不管设置文件时间。
由于限制 差异 输出格式,这些选项不能更新时间
内容没有改变的文件。 此外,如果您使用这些选项,您应该
删除(例如 使 清洁) 所有依赖于修补文件的文件,以便以后
的调用 使 不要被修补文件的时间弄糊涂了。
环境
补丁获取
这指定是否 补丁 从 RCS、ClearCase、
Perforce 或默认情况下的 SCCS; 见 -g or - 得到 选项。
POSIXLY_CORRECT
如果设置, 补丁 默认情况下更严格地符合 POSIX 标准:请参阅 --posix
选项。
引用_STYLE
的默认值 --引用风格 选项。
SIMPLE_BACKUP_SUFFIX
用于简单备份文件名的扩展名,而不是 .orig.
TMPDIR, TMP, TEMP
放置临时文件的目录; 补丁 在此使用第一个环境变量
设置的列表。 如果没有设置,默认是系统相关的; 通常是
/ tmp目录 在 Unix 主机上。
版本控制 or 补丁版本控制
选择版本控制风格; 见 -v or --版本控制 选项。
使用 onworks.net 服务在线使用补丁