linux – 为什么cat会改变二进制文件的内容?

linux – 为什么cat会改变二进制文件的内容?,第1张

概述显然,在二进制文件上运行cat并回显内容似乎不起作用.这是我制作的简单脚本: #!/bin/shCONTENTS=$(cat "$1")mv "$2" "$1"echo "$CONTENTS" > "$2" 出于某种原因,当我做这样的事情时,这似乎搞得一团糟: script first.pptx second.pptx 运行此命令后,新的first.pptx文件打开正常,但新的second 显然,在二进制文件上运行cat并回显内容似乎不起作用.这是我制作的简单脚本:

#!/bin/shCONTENTS=$(cat "")mv "" ""echo "$CONTENTS" > ""

出于某种原因,当我做这样的事情时,这似乎搞得一团糟:

script first.pptx second.pptx

运行此命令后,新的first.pptx文件打开正常,但新的second.pptx文件应该是无效的格式或其他内容.

为什么会发生这种情况,我该怎么做才能解决这个问题?

解决方法 构造$(cat“$1”)将取代文件中的任何尾随换行符,然后替换该值(这就是CONTENTS最终会得到的结果).

echo“$CONTENTS”将截断第一个Nul字符的内容,并附加换行符.

因此,如果文件没有以一个换行符结尾,则内容将稍微改变.如果它有任何Nul字符,它将被截断.

总结

以上是内存溢出为你收集整理的linux – 为什么cat会改变二进制文件的内容?全部内容,希望文章能够帮你解决linux – 为什么cat会改变二进制文件的内容?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1021206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存