为什么我的补丁以二进制格式发布?

右旋糖原

我将两个目录分别为220和sue,如下所示:

diff -r 220 sue > diff.txt

此后目录如下:

$ ls -al
total 20
drwxrwx---+ 1 Administrators Domain Users     0 Jun 24 10:44 .
drwxrwx---+ 1 SYSTEM         SYSTEM           0 Jun 24 09:52 ..
drwxrwx---+ 1 Administrators Domain Users     0 Jun 24 09:54 220
-rw-rwxr--+ 1 jempty         Domain Users 15463 Jun 24 10:44 diff.txt
drwxrwx---+ 1 Administrators Domain Users     0 Jun 24 09:55 sue

确认diff.txt是如下文本:

$ file diff.txt
diff.txt: HTML document, ASCII text, with very long lines, with CRLF, LF line terminators

上面的内容主要是为了证明我可以使用diff并看到没有太多差异。

然后按照https://docs.moodle.org/dev/How_to_create_a_patch的建议创建补丁文件

$ diff -Naur 220 sue > patch.txt

目录中的结果如下所示:

$ ls -al
total 133836
drwxrwx---+ 1 Administrators Domain Users         0 Jun 24 10:57 .
drwxrwx---+ 1 SYSTEM         SYSTEM               0 Jun 24 09:52 ..
drwxrwx---+ 1 Administrators Domain Users         0 Jun 24 09:54 220
-rw-rwxr--+ 1 jempty         Domain Users     15463 Jun 24 10:44 diff.txt
-rw-rwxr--+ 1 jempty         Domain Users 137024100 Jun 24 10:57 patch.txt
drwxrwx---+ 1 Administrators Domain Users         0 Jun 24 09:55 sue

如您所见,patch.txt文件非常庞大,事实证明它是二进制文件:

$ file patch.txt
patch.txt: data

我应该使用patch命令而不是diff

詹姆斯·斯诺格

您可以在220sue或两者中都有二进制文件(程序,DLL,数据文件等)

第一个命令(diff -r)识别出某些文件是二进制文件,在这种情况下,diff将仅打印一条消息,说明它们是不同的。例如,如果两个220sue有一个二进制文件foo.dat在其中,你会期望的输出是这样的:

Binary files 220/foo.dat and sue/foo.dat differ

第二个命令具有-a标志,该标志指示diff将所有文件无条件地视为纯文本,因此它将比较和打印220/foo.dat之间的差异的原始二进制内容sue/foo.dat由于diff逐行比较,并且二进制文件通常很少有换行符,因此即使输出的文件相对较小,比较并显示在输出中的行也将相当大。

为了减少diff的输出大小,请不要使用-a标志:

$ diff -Nur 220 sue > patch.txt

如果您不关心二进制文件之间的差异,则可以过滤输出以排除它们:

$ diff -Nur 220 sue | grep -v '^Binary files.*differ' > patch.txt

要回答您的最后一个问题,patch是的反义词diff,因此您将不在patch这里使用您用于diff查找文件之间的差异,并patch用于将diff的输出中的差异应用于这些文件。当提及的输出时,这些术语可以互换使用diff

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的函数的输出为二进制?

来自分类Dev

为什么我的十进制到二进制程序以表格式向后返回值?

来自分类Dev

为什么我不能在C#中将对象序列化为二进制格式?

来自分类Dev

透明的“ symlink +二进制补丁”

来自分类Dev

为什么以二进制格式写入文件会导致文件大小不同?

来自分类Dev

为什么可执行文件需要二进制格式规范?

来自分类Dev

为什么“二进制文件”不在原始二进制文件中?

来自分类Dev

为什么我必须使用ld链接我的二进制文件

来自分类Dev

如果我自己构建一个OpenDJ二进制文件与VS Forgerock Enterprise发布的二进制文件有什么区别?

来自分类常见问题

为什么输入后我的二进制搜索脚本无法执行?

来自分类Dev

为什么我的二进制搜索实现效率很低?

来自分类Dev

为什么我应该放弃加二进制数的过程?

来自分类Dev

为什么我的系统仅在/ snap中查找二进制文件?

来自分类Dev

为什么我的二进制到英语代码不起作用?

来自分类Dev

为什么我遇到段错误(二进制数据解析)c

来自分类Dev

我们为什么不使用简单的二进制值来压缩数据

来自分类Dev

为什么我使用curl获得二进制输出

来自分类Dev

为什么二进制搜索在我的测试中不起作用?

来自分类Dev

为什么输入后我的二进制搜索脚本无法执行?

来自分类Dev

为什么我在Keras二进制分类模型中获得零精度?

来自分类Dev

为什么我的二进制搜索树无效删除功能无法正常工作?

来自分类Dev

为什么编译后我们不能理解二进制文件的内容?

来自分类Dev

为什么我的二进制搜索实现效率很低?

来自分类Dev

为什么我不能遍历二进制多行读取?

来自分类Dev

为什么我的二进制到英语代码不起作用?

来自分类Dev

为什么我会执行二进制文件错误?

来自分类Dev

为什么我不能从/ home路径运行二进制文件

来自分类Dev

为什么我的递归二进制搜索函数不返回任何内容?

来自分类Dev

为什么我不能正确地以二进制形式打印数字?

Related 相关文章

  1. 1

    为什么我的函数的输出为二进制?

  2. 2

    为什么我的十进制到二进制程序以表格式向后返回值?

  3. 3

    为什么我不能在C#中将对象序列化为二进制格式?

  4. 4

    透明的“ symlink +二进制补丁”

  5. 5

    为什么以二进制格式写入文件会导致文件大小不同?

  6. 6

    为什么可执行文件需要二进制格式规范?

  7. 7

    为什么“二进制文件”不在原始二进制文件中?

  8. 8

    为什么我必须使用ld链接我的二进制文件

  9. 9

    如果我自己构建一个OpenDJ二进制文件与VS Forgerock Enterprise发布的二进制文件有什么区别?

  10. 10

    为什么输入后我的二进制搜索脚本无法执行?

  11. 11

    为什么我的二进制搜索实现效率很低?

  12. 12

    为什么我应该放弃加二进制数的过程?

  13. 13

    为什么我的系统仅在/ snap中查找二进制文件?

  14. 14

    为什么我的二进制到英语代码不起作用?

  15. 15

    为什么我遇到段错误(二进制数据解析)c

  16. 16

    我们为什么不使用简单的二进制值来压缩数据

  17. 17

    为什么我使用curl获得二进制输出

  18. 18

    为什么二进制搜索在我的测试中不起作用?

  19. 19

    为什么输入后我的二进制搜索脚本无法执行?

  20. 20

    为什么我在Keras二进制分类模型中获得零精度?

  21. 21

    为什么我的二进制搜索树无效删除功能无法正常工作?

  22. 22

    为什么编译后我们不能理解二进制文件的内容?

  23. 23

    为什么我的二进制搜索实现效率很低?

  24. 24

    为什么我不能遍历二进制多行读取?

  25. 25

    为什么我的二进制到英语代码不起作用?

  26. 26

    为什么我会执行二进制文件错误?

  27. 27

    为什么我不能从/ home路径运行二进制文件

  28. 28

    为什么我的递归二进制搜索函数不返回任何内容?

  29. 29

    为什么我不能正确地以二进制形式打印数字?

热门标签

归档