首页 > 代码库 > Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法

Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法

原博文地址:http://www.cnblogs.com/york-hust/archive/2012/07/07/2580388.html

文件是在WIndows 下创建的,Windows 的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码

不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。文件名转码工具convmv没安装的话

用下面的命令安装:

sudo apt-get install convmv
复制代码



convmv 使用方法:

convmv -f 源编码 -t 新编码 [选项] 文件名

常用参数:

-r 递归处理子文件夹

–notest 真正进行操作,默认情况下是不对文件进行真实操作

–list 显示所有支持的编码

–unescap 可以做一下转义,比如把%20变成空格

应用举例:(看最后几段就是批量转化的结果)

ishagua@ishagua-laptop:~$ sudo apt-get install convmv
[sudo] password for ishagua: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列【新】软件包将被安装:
  convmv
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 20.2kB 的软件包。
解压缩后会消耗掉 90.1kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu/ lucid/universe convmv 1.12-2 [20.2kB]
下载 20.2kB,耗时 0秒 (103kB/s)
选中了曾被取消选择的软件包 convmv。
(正在读取数据库 ... 系统当前总共安装有 151915 个文件和目录。)
正在解压缩 convmv (从 .../archives/convmv_1.12-2_all.deb) ...
正在处理用于 man-db 的触发器...
正在设置 convmv (1.12-2) ...
ishagua@ishagua-laptop:~lsBeyond.?.[25d.?.[25.CD1]..(MP3)examples.desktopishagua@ishagua?laptop: lsBeyond.?.[25d.?.[25周年精选.CD1].专辑.(MP3)公共的视频文档音乐examples.desktop模板图片下载桌面ishagua@ishagua?laptop:  cd 下载/Beyond
ishagua@ishagua-laptop:~/下载/Beyondls01??????(BrainAttack).mp310??????(????).mp302????(Building).mp311??????(????).mp303??????(8512????????).mp312Myth(89???????).mp304TheOtherDoor(86??????).mp313Europe(88demo).mp305?? (′86??????)????????.mp314?′???????(?????).mp306????????(′ 86???).mp315UTwo(′88demo).mp307???????(?????).mp316UTwo(′ 91demo).mp308???????(′88???).mp317SouthernAllStar(′ 91demo).mp309LongWayWithoutFriends(′88.mp3ishagua@ishagua?laptop: /下载 /Beyondls01??????(BrainAttack).mp310?????? (????).mp302????(Building).mp311??????(????).mp303??????(′ 8512????????).mp312Myth(′89???????).mp304TheOtherDoor(′ 86??????).mp313Europe(′88demo).mp305??(′86??????)????????.mp314?′??????? (?????).mp306????????(′86???).mp315UTwo(′88demo).mp307??????? (?????).mp316UTwo(′91demo).mp308???????(′88???).mp317SouthernAllStar(′ 91demo).mp309LongWayWithoutFriends(′88.mp3ishagua@ishagua?laptop: /下载 /Beyondconvmv -f GBK -t UTF-8 --notest *.mp3
Your Perl version has fleas #37757 #49830 
mv "./01 ? ? (Brain Attack).mp3"        "./01脑部侵袭 (Brain Attack).mp3"
mv "./02 (Building).mp3"        "./02大厦 (Building).mp3"
mv "./03 ? ? (‘85 12 ).mp3"        "./03永远等待 (‘85 12吋混音版).mp3"
mv "./04The Other Door (‘86? ? ).mp3"        "./04The Other Door (‘86台北现场).mp3"
mv "./05 (‘86 ? ? ) - ? .mp3"        "./05冲 (‘86高山现场) - 高速啤机.mp3"
mv "./06 (‘86 ? ).mp3"        "./06金属狂人 (‘86现场).mp3"
mv "./07 ? ? (? ).mp3"        "./07旧日的足迹 (全长版).mp3"
mv "./08 ? (‘88 ? ).mp3"        "./08再见理想 (‘88现场).mp3"
mv "./10 ( ).mp3"        "./10第三街 (快版).mp3"
mv "./11 ( ).mp3"        "./11主题曲 (慢版).mp3"
mv "./12Myth (‘89 ? ).mp3"        "./12Myth (‘89 伊馆现场).mp3"
mv "./14 ′ ( ? ).mp3"        "./14勇闯新世界 (电台版).mp3"
Ready!
ishagua@ishagua-laptop:~/下载/Beyond$
 
主要方法:convmv -f GBK -t UTF-8 --notest -r *[把当前文件夹下所有乱码文件名改过来]

Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法