linux乱码文件名怎么删除?
在linux系统中,当文件名为乱码时,不能通过键盘输入文件名,不过,可以在终端下就不能直接利用rm,mv等命令管理文件了。
每个文件都有一个i节点号,可以考虑通过i节点号来管理文件。
首先,取得文件的i节点号。
通过ls命令的-i选项获得:
[root@mail ~]# ll -i
19694952 -rw-r--r-- 1
apache apache 381 Nov 26 2009 api.php
19698337 -rw-r--r-- 1 apache apache 406 Jul 8 2008 plcxue.com.txt
每个文件名前面的数字就是文件的i节点号。
有了文件的i节点号,就可以利用find命令的-inum选项配合常用的文件管理命令进行文件管理了。
例如,删除plcxue.com.txt文件,命令:
[root@mail ~]# find . -inum 19698337 -exec rm {} ;
看plcxue.com.txt文件被删除了。
因为机子上暂时没有文件名为乱码的文件做为示例,要重命名一个文件,命令:
[root@mail ~]# ll -i
19694952 -rw-r--r-- 1 apache apache 381 Nov 26 2009 api.php
19698337 -rw-r--r-- 1 apache apache 406 Jul 8 2008 plcxue.com.txt
[root@mail ~]# find . -inum 19698337 -exec mv {} plcxue.com ;
[root@mail ~]# ll -i
19694952 -rw-r--r-- 1 apache apache 381 Nov 26 2009 api.php
19698337 -rw-r--r-- 1 apache apache 406 Jul 8 2008 plcxue.com
如此,plcxue.com.txt文件被重命名为plcxue.com了。
注意,在linux find命令中的“{}”表示find命令找到的文件,在 -exec 选项执行mv命令时,会利用按i节点号找到的文件名替换掉“{}”
有关linux find命令的用法,参阅: