发布时间:2022-04-23 文章分类:Linux + 投稿人:樱花 字号: 默认 | | 超大 打印

今天介绍个文件名转码的工具--convmv,convmv能帮助我们很容易地对一个文件,一个目录下所有文件进行编码转换,比如gbk转为utf8等。
安装:

代码如下:
yum install convmv

(这里的示例环境为CentOS系统)

语法:

代码如下:

convmv [options] FILE(S) ... DIRECTORY(S)

主要选项:
1、-f ENCODING
指定目前文件名的编码,如-f gbk
2、-t ENCODING
指定将要转换成的编码,如-f utf-8
3、-r
递归转换目录下所有文件名
4、--list
列出所有支持的编码
5、--notest
默认是只打印转换后的效果,加这个选项才真正执行转换操作。

常用参数:
-r 递归处理子文件夹
–notest 真正进行操作,默认情况下是不对文件进行真实操作
–list 显示所有支持的编码
–unescap 可以做一下转义,比如把%20变成空格
-i 交互模式(询问每一个转换,防止误操作)
convmv 的使用方法:
convmv -f 源编码 -t 新编码 [选项] 文件名

例子:

转换文件编码, 以 BIG5转换成 UTF-8 为例:
[/code]
$ convmv -f BIG5 -t UTF-8 /disk1
[/code]
列出可以用的编码:

代码如下:

$ convmv --list

转换档名中的 %xx 这种 16 进位的编码:

代码如下:

$ convmv --unescape 档案

把档名中的字母全转换成小写:

代码如下:

$ convmv --lower 档案

要注意的地方是它预设只会把转换的结果秀出来, 要再加上 --notest 参数才会真正去改文件名。
另外几个用到的参数是 -r 会连子目录的文件一起转换, -i 是互动模式, 一个一个档案询问是否转换等等, 可以用 --help 参数看说明。