Rootop 服务器运维与web架构

DOS/Windows和Linux/Unix文件格式的区别

| 暂无评论

      DOS/Windows和Linux/Unix的文件换行回车格式不同,基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行。linux文件放到windows下查看没有换行。

     虽然很多程序不在乎 DOS/Windows 格式的 CR/LF 文本文件,但是有几个程序却在乎, 最著名的是 bash,只要一遇到回车,就会报错。

     比如我有一个windows下的文件,叫做mysql官网账户.txt。传到linux下显示乱码:

[root@svn ~]# file mysql▒▒▒▒▒˻▒.txt
mysql▒▒▒▒▒˻▒.txt: ASCII text, with CRLF line terminators

看到是dos格式文件。

先利用convmv解决文件名称乱码问题:


[root@svn CentOS]# convmv -f GBK -t UTF-8 --notest ~/mysql▒▒▒▒▒˻▒.txt
mv "/root/mysql▒▒▒▒▒˻▒.txt"     "/root/mysql官网账户.txt"
Ready!

[root@svn CentOS]#ll
-rw-r--r-- 1 root root   27 09-04 10:10 mysql官网账户.txt

开始编码格式转换:

[root@svn ~]# dos2unix mysql官网账户.txt
dos2unix: converting file mysql官网账户.txt to UNIX format …
[root@svn ~]# file mysql官网账户.txt
mysql官网账户.txt: ASCII text

反过来unix2dos格式就用unix2dos命令转换:
[root@svn ~]# unix2dos mysql官网账户.txt
unix2dos: converting file mysql官网账户.txt to DOS format …
[root@svn ~]# file mysql官网账户.txt
mysql官网账户.txt: ASCII text, with CRLF line terminators

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/1844.html

作者:Venus

服务器运维与性能优化

发表回复