经常遇到要把GBK或者UTF-8编码的文件转成其它编码的情况。(例如:在utf8的locale中,要把文件复制到windows的分区中,或打包发送给使用Windows的用户,通常要把文件名转换成gbk码。而如果要把gbk的locale转成utf8的,则需要对文件名做编码转换。又或者您使用的发行版默认编码不同,红旗是GB18030,红帽是UTF-8等,这就需要转换编码了。)
手动操作文件夹很麻烦,工具convmv解决了这一问题。并支持批量转换。
注意:
不要在NTFS或FAT文件系统上做此种操作,否则可能产生意外结果。如果要在Linux中正确显示NTFS和 FAT的中文件名,请参阅挂载Windows分区。
convmv存在于常见操作系统的源中。如果当前没有工具,可以直接安装。
引用
# rpm -qa|grep convmv
convmv-1.08-3.EL
convmv-1.08-3.EL
格式:
引用
convmv -f 源编码 -t 新编码 [选项] 文件名
常见有用的选项有:
引用
-r 递归处理子文件夹
–notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。
–unescape 可以做一下转义,比如把%20变成空格,如果你不知道这是在做什么,就不要尝试了。
–notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。
–unescape 可以做一下转义,比如把%20变成空格,如果你不知道这是在做什么,就不要尝试了。
内容来自:
linux wiki cn
附录:
convmv只能转换文件名,但不能对文件内容编码进行转换。文件内容编码的转换,请使用iconv命令。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/112308.html