如果我执行以下命令:
$ cat picture.jpg > copy1.jpg
Run Code Online (Sandbox Code Playgroud)
和
$ cat -v picture.jpg > copy2.jpg
Run Code Online (Sandbox Code Playgroud)
copy1.jpg是 的完美副本picture.jpg,但copy2.jpg比picture.jpg.
我认为这是因为copy2.jpg已经将猫认为的每个行尾都替换为 a ^M,并且每个^M都比行尾大。这样对吗?
如果那样做cat copy2.jpg,我发现没有^Min 的实例copy2.jpg。
这里发生了什么?如果 cat>的输出可能与其输入不同,那么可以依靠 cat 完美地使用 连接文件吗?
这不仅仅是^M. 每个带有不可打印字符的字节(无论在当前语言环境中意味着什么)都将在cat -v.
如果您使用cat连接文件,则需要避免修改输出的每个选项:-b和-n(数字行)、-E(标记行结尾为$)、-s(抑制重复的空行)-v和-T(使用可打印的显示不可打印的字符)人物)。