加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

解决linux上无法删除文件的方法(疑难文件)

(2015-11-01 20:08:35)
标签:

it

文件

号码

疑难

今天有个中文乱码解压的文件夹无法删除,如下

例如:
[root@node96 ~]# rm -abc
rm: invalid option -- 'a'
Try `rm ./-abc' to remove the file `-abc'.
Try `rm --help' for more information.
[root@node96 ~]# rm "-abc"
rm: invalid option -- 'a'
Try `rm ./-abc' to remove the file `-abc'.
Try `rm --help' for more information.
[root@node96 ~]# rm '-abc'
rm: invalid option -- 'a'
Try `rm ./-abc' to remove the file `-abc'.
Try `rm --help' for more information.

删除不掉,怎么办?

还是有办法的: linux/unix 的文件系统,在内部是通过inode 来确认具体的文件的。
也就是说,系统内部对文件的访问,不需需要通过文件名进行。

那就是说我们可以通过inode 号码来删除文件。
[root@node96 ~]# ls -li
total 2032
413009 -rw-r--r--  1 root root    1435 Sep 13 09:58 97
413905 -rw-r--r--  1 root root       0 Oct 22 11:20 -abc

“-abc” 文件的 inode 号码是413905

rm命令是没有提供根据inode 号码来删文件的功能,
unlink 命令也没有这个选项。

怎么办?

可以曲线救国的。

find 命令提供了 根据inode 号码查找文件的选项。

[root@node96 ~]# find  -inum 413905
./-abc

删除就好办了。

删除文件的命令如下:


[root@node96 ~]# find ./ -inum 413905 -exec rm -i {} \;
rm: remove regular empty file `./-abc'? y

删除文件夹的命令如下:

[root@localhost ~]#find ./ -inum 147476 -exec rm -rf {} \;


删除就好了

还有一个办法,就是包含文件的全路径名 用单引号 括起来也可以,不过有时候半角的字体是无法输入的,所以工find 是正道。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有