代码改变世界

通过inode来操作文件

2012-09-13 19:37  康杜  阅读(958)  评论(3编辑  收藏  举报

在unix或linux上,有时候我们会遇到一些文件名是乱码。这时候我们不能通过文件名来操作文件。这种情况下,我们可以考虑通过find加上文件唯一的inode来操作。

$ cd /tmp
$ touch Заглавная_страница
$ ls

通过ls -il 找到这个文件的inode number

alex@ubuntu:/tmp$ ls -il
total 7
106512 drwxrwxrwt 2 lightdm lightdm 1024  9月 13 08:26 at-spi2
106530 drwx------ 2 alex    alex    1024  9月 13 17:21 CRX_75DAF8CB7768
106509 drwx------ 2 alex    alex    1024  9月 13 08:26 keyring-5LKhnG
106514 drwx------ 2 lightdm lightdm 1024  9月 13 08:26 pulse-2L9K88eMlGn7
106498 drwx------ 2 root    root    1024  9月 13 08:26 pulse-PKdhtXMmr18n
106524 drwx------ 2 alex    alex    1024  9月 13 08:26 pulse-tgglgvvPdrP3
106516 drwx------ 2 alex    alex    1024  9月 13 08:26 ssh-RVInWbFr1927
106517 -rw------- 1 alex    alex       0  9月 13 08:27 tmp5VFUne
106515 -rw-rw-r-- 1 lightdm lightdm    0  9月 13 08:26 unity_support_test.0
106536 -rw-rw-r-- 1 alex    alex       0  9月 13 19:30 Заглавная_страница

通过find命令根据inum找到这个文件,然后删除或者改名

alex@ubuntu:/tmp$ find . -inum 106536 -exec rm {} \;

alex@ubuntu:/tmp$ find . -inum 106536 -exec mv {} newname \;