日期:2014-05-16  浏览次数:20698 次

Linux/Unix修改中文文件或目录名称

?

Linux/Unix下使用中文的目录和文件不是很方便。特别是在字符界面下如果和语言相关的环境变量设置不当经常会碰到乱码的情况。那如何把中文目录或文件名改成英文呢?比如要想把当前目录下的一个叫"字幕"的目录改成subtitles如何实现?

首先,确定要修改的文件或目录的inode值。这个可以用ls -i来获得。

52142108 archive ?58934784 cook ? ? 59236370 warez

52142286 backup ? 52142254 devel ? ?60375041 work

58384385 books ? ?52142116 movies ? 60498830 字幕

?802834 RefDoc ? ?58828555 cert ? ? 59236353 plan

本例中字幕的inode为60498830,然后用find命令找到该目录并修改为"subtitles"

find . -inum 60498830 -exec mv {} subtitles \;

或者用管道和xargs更为直观:

find . -inum 60498830 -exec | xargs -i mv {} subtitles

?

这个方法依赖于find命令必须支持-inum选项。一些嵌入式系统所附带的Linux未必能够支持。