怎样批量把文件名中的中文字符去掉?

怎样批量把文件名中的中文字符去掉?

如题:
For example:
怎样把文件 file文件123.txt file文件124.txt   ..... 改名为 file123.txt  file124.txt..........      
复制内容到剪贴板
代码:
$ rename 文件 '' file文件*.txt
      
sorry,可能是我没有说清楚,我的意思是把一个文件夹下面的所有包括中文字符的文件名改名为不要其中的中文字符,而其它的不变,eg.文件夹folder下有以下几个文件:
file文件1.txt 、 f文件le2.txt 、f3ile文件.txt、文件file4.txt、文5件file.txt、f其ile它中文字符6.txt.....
去掉中间的中文字符就成了:file1.txt file2.txt file3.txt file4.txt,file5.txt,file6.txt谢谢!      
以下仅作示例, 如直接使用, 后果自负
复制内容到剪贴板
代码:
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[1840 0] # [/color]ls -l test
total 0
-rw-r--r-- 1 Administrator None 0 Sep 15 09:58 file1甸
-rw-r--r-- 1 Administrator None 0 Sep 15 09:58 file2伊
-rw-r--r-- 1 Administrator None 0 Sep 15 09:58 file3园
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[1840 0] # [/color]cat foo.sh
#! /bin/bash

old=$1
# 姑且认为 ASCII 码在 [128, 256) 之间的字符都为中文
new=$( echo "$old" | tr -d $'\x80-\xff' )
cmd="mv \"$old\" \"$new\""
echo "$cmd"
eval "$cmd"
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[1840 0] # [/color]/usr/bin/find test -type f -exec ./foo.sh {} \;
mv "test/file2伊" "test/file2"
mv "test/file1甸" "test/file1"
mv "test/file3园" "test/file3"
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[1840 0] # [/color]ls -l test
total 0
-rw-r--r-- 1 Administrator None 0 Sep 15 09:58 file1
-rw-r--r-- 1 Administrator None 0 Sep 15 09:58 file2
-rw-r--r-- 1 Administrator None 0 Sep 15 09:58 file3
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[1840 0] # [/color]o
      
谢谢!不过用x80-xff表示中文字符,好像不怎么妥?测试的时候好像"."也包括在内?      
it's not really perfect. u can make it better in the way u like.       
经典!
学习!学习!      
好久没见 TUDOU01 了, 欢迎回来       
最近忙于其它事情,很久没来,重新回到论坛,又见到了斑竹和许多熟知的朋友,倍感亲切!
感谢斑竹的惦念!