从linux往 windows拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名 中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致,所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。
在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK。
如下是详细操作:
[root@chy01 images]# ls ???_20170808142307.png bg_1.png icon10.png n1.png QQ??20170808124717.png 20170814_3089106_1_1020482_30008_0.JPG bg_2.png icon11.png n2.png QQ??20170808124835.png 20170814_3089107_2_1020482_30008_0.JPG bg_3.png icon1.jpg n3.png QQ??20170808125029.png 20170814_3089108_3_1020482_30008_0.JPG bg_4.png icon2.png n4.png QQ??20170808125556.png 2017082301.JPG bg_5.png icon3.png n5.png SS1-1.png 2017082302.JPG bg_6.png icon4.png nav_ico.png ss1-2.png 2.jpg bg_7.jpg icon5.png peixuntu.jpg ss1.png 333.png bg_9.jpg icon6.png ?????.png transparent.gif 444.png f1.jpg icon7.png ??????.png xztb01.png about2_wpsA087.tmp.png f2.jpg icon8.png ??????.png xztb.png about2_wpsA088.tmp.jpg f3.jpg icon9.png ??????.png ziliaoxiazai.png about2_wpsA089.tmp.jpg f4.jpg logo 1.jpg ????????.png ??????.png about2_wpsA08A.tmp.png f5.jpg logo2.jpg QQ??20170808105711.png about3_wps8BA0.tmp.png gywm.jpg logo.png QQ??20170808124354.png (如上查看时有很多的乱码) [root@chy01 wwwroot]# yum install -y convmv.noarch (需要安装这个包) [root@chy01 test.com]# convmv -f gb2312 -t UTF-8 --notest -r Assets mv "Assets/t/±¨±ls" "Assets/t/考试报名表.xls" mv "Assets/t/.rar" "Assets/t/考试模拟器.rar" mv "Assets/t/′.png" "Assets/t/代理证.png" mv "Assets/t/±¨±).xls" "Assets/t/考试报名表(1).xls" mv "Assets/upload/QQ20170809100124.png" "Assets/upload/QQ截图20170809100124.png" mv "Assets/upload/3jpg" "Assets/upload/xx.jpg" mv "Assets/upload/ˉ.jpg" "Assets/upload/xx.jpg" mv "Assets/upload/a′jpg" "Assets/upload/xxx.jpg" mv "Assets/upload/1.jpg" "Assets/upload/xxx.jpg" mv "Assets/upload/aμ聦.jpg" "Assets/upload/xxx.jpg" Ready! 如上就是用convmv来解决的,如下是它的语法介绍: 命令使用: 格式:convmv -f 源编码 -t 新编码 [选项] 文件名/目录名 GB2312->UTF-8 1 2 convmv -f gb2312 -t UTF-8 --notest -r 目录 convmv -f gb2312 -t UTF-8 --notest 测试.txt (说明windows中默认的是gb2312 需要转换为linux中的utf-8,命令解释: -f 参数是指出转换前的编码; -t 是转换后的编码; -r 递归处理子文件夹; --notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验)
原文地址:http://chy940405.blog.51cto.com/11344281/1980658