linux下利用inode删除指定文件文件
本文主要介绍使用inode删除异常文件名的文件的方法,供大家参考:
在Linux中,有时候会遇到文件名是乱码或者是某些特殊中文的文件,这时候通过文件名就很难删除。
同时,对于linux中的任何一个文件都必然有其唯一的inode值,这时候就可以通过inode来删除异常文件名的文件
操作的对象一般为类似下面的文件:
[root@server tmp]# ll
总用量
-rw-r--r-- root root 6月 : ?
-rw-r--r-- root root 6月 : ??
-rw-r--r-- root root 6月 : ???3kqU
-rw-r--r-- root root 6月 : ?;?Xf??mA??????T֙
-rw-r--r-- root root 6月 : 9y??????sy?z?D?l???I?MO???8z????@]??U@?XlAI]?k
产生这类文件的原因:
1.上传文件时网络异常导致
2.Windows创建的某些文件名在Linux下无法正常识别
3.中文特殊字符无法识别
解决方法如下:
1.查询这些文件的inode值
ll -i
[root@server tmp]# ll -i
总用量
-rw-r--r-- root root 6月 : ?
-rw-r--r-- root root 6月 : ??
-rw-r--r-- root root 6月 : ???3kqU
-rw-r--r-- root root 6月 : ?;?Xf??mA??????T֙
-rw-r--r-- root root 6月 : A??K?
以上,最左边的数字即为对应文件的inode值,不过无法直接使用rm命令删除文件,需要其他命令配合使用
2.删除异常文件
正常情况下这些文件也是可遇不可求的,不过涉及到rm的命令要小心谨慎,事前做一下测试,熟练下操作怎么也是不为过的,没有这些乱码的文件,可以使用正常的文件做测试,
有以下这几种方法:
先创建需要的文件
[root@zstest1 tmp]# cd /tmp
[root@zstest1 tmp]# touch aaa bbb ccc ddd eee
[root@zstest1 tmp]# ll -i
总用量
-rw-r--r-- root root 9月 : aaa
-rw-r--r-- root root 9月 : bbb
-rw-r--r-- root root 9月 : ccc
-rw-r--r-- root root 9月 : ddd
-rw-r--r-- root root 9月 : eee
(1)使用find自带的delete参数进行删除aaa文件
[root@zstest1 tmp]# find ./* -inum 1442581 -delete
[root@zstest1 tmp]# ll -i
总用量 0
1442582 -rw-r--r-- 1 root root 0 9月 22 15:00 bbb
1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee
(2)使用find自带的-exec参数结合rm命令删除bbb文件(进行删除确认)
[root@zstest1 tmp]# find ./* -inum 1442582 -exec rm -i {} \;
rm:是否删除普通空文件 "./bbb"?y
[root@zstest1 tmp]# ll -i
总用量 0
1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee
(3)使用find自带的-exec参数结合rm命令删除ccc文件(不进行删除确认)
[root@zstest1 tmp]# find ./* -inum 1442583 -exec rm -f {} \;
[root@zstest1 tmp]# ll -i
总用量 0
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee
(4)使用find和xargs结合删除ddd文件(无法使用-i参数进行删除确认)
[root@zstest1 tmp]# find ./* -inum 1442584 |xargs rm -f
[root@zstest1 tmp]# ll -i
总用量 0
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee
(5)使用rm命令删除指定文件(由find命令找到的文件名)
[root@zstest1 tmp]# rm `find ./* -inum 1442574`
rm:是否删除普通空文件 "./eee"?y
[root@zstest1 tmp]# ll
总用量 0
# 使用find命令的-inum选项确认文件名
[root@zstest1 tmp]# touch fff
[root@zstest1 tmp]# ll -i
总用量
-rw-r--r-- root root 9月 : fff
[root@zstest1 tmp]# find ./* -inum 1442574
./fff
总结一下:
以上几种不同的删除方式,总体来说都是通过指定文件的inode值,使用find命令的-inum选项确认其文件名,然后传递给rm命令进行删除
完毕,呵呵呵
linux下利用inode删除指定文件文件的更多相关文章
- 【java】 linux下利用nohup后台运行jar文件包程序
Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...
- Linux下使用inode删除文件
Linux 下有时候某些文件无法使用 rm 直接删除, 比如该文件的文件名含有终端不能正确显示的字符.# ls -litotal 0441511 -rw-r--r-- 1 root root 0 Ap ...
- Linux下自动清理超过指定大小文件的方法
由于线上业务用的squid,根据经验值如果长时间运行则缓存目录下的swap.state会慢慢变大,一旦超过60M,squid的性能就会急剧下降,因此需要定时去清理大于60M的swap.state文件. ...
- Linux下利用rsync实现多服务器文件同步
windows做为文件服务器,使用rsync的windows服务版本,然后配置好就可以了.需要的朋友可以参考下. windows做为文件服务器,使用rsync的windows服务版本:cwRsyncS ...
- linux下利用nohup后台运行jar文件包程序
Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...
- linux下创建,删除,移动文件命令
创建文件:touch + filename 删除文件:rm + filename 复制文件:cp + filename + dirname 移动文件:mv + filename + dirname 注 ...
- Linux下自动清理超过指定大小文件
作者:邓聪聪 扫描某个目录下的文件,发现超过指定大小即清空 1)扫描目录下的文件 2)判断文件大小 3)清空大于指定文件的内容 以byte为单位显示文件大小,然后和20M大小做对比. 20M换算成字节 ...
- linux下 利用 rz 命令上传文件
1. 如何安装? 1)编译安装 root 账号登陆后,依次执行以下命令: # cd /tmp # wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20 ...
- Linux下用rm删除的文件的恢复方法
Linux下用rm删除的文件的恢复方法_Linux教程_Linux公社-Linux系统门户网站https://www.linuxidc.com/Linux/2008-08/14744.htm linu ...
随机推荐
- python-运算、分支、深浅拷贝
算术表达式: + - * / 除法Python3中是默认向浮点数靠拢 //取整运算 结果的最小整数靠拢 向下 5 // 2 = 2(向下取整) %取余运算 5 % 2 = 1 **幂值运算 ...
- eclipse 工程没有build path
项目的.project文件添加: <buildSpec><buildCommand><name>org.eclipse.jdt.core.javabuilder&l ...
- 【bzoj2563】阿狸和桃子的游戏(贪心+构造)
题目传送门:bzoj2563 先膜拜一波PoPoQQQ的题解:BZOJ 2563 阿狸和桃子的游戏 贪心 其实我们可以这样看:把一条边的权值均分到两个端点,那么取到两个端点就能得到这条边的边权,如果只 ...
- Pandas学习1
pandas有两种自己独有的基本数据结构Series和DataFrame Series 数据结构 data 100 300 500 index 0 1 2 或者 index data 0 100 1 ...
- 【视觉基础知识】Bag of words 在图像中的应用
文章转载自:https://www.cnblogs.com/shihuajie/p/5782515.html BOW (bag of words) 模型简介 Bag of words模型最初被用在文本 ...
- Flume NG初次使用
一.什么是Flume NG Flume是一个分布式.可靠.和高可用性的海量日志采集.聚合和传输的系统,支持在日志系统中定制各类数据发送方,用于收集数据:同时Flume提供对数据的简单处理,并写到各种数 ...
- 解决 对路径bin\roslyn..的访问被拒绝
使用visual studio开发,一重新编译就会报错: 对路径“bin\roslyn\System.Reflection.Metadata.dll”的访问被拒绝 一开始的解决办法就是把bin下的文件 ...
- Nginx安装和使用
Nginx简介 nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态.静态页面的分离,可以按照轮询.ip哈希.URL哈希.权重等多种方式对后 ...
- 15.并发容器之ConcurrentLinkedQueue
1.ConcurrentLinkedQueue简介 在单线程编程中我们会经常用到一些集合类,比如ArrayList,HashMap等,但是这些类都不是线程安全的类.在面试中也经常会有一些考点,比如Ar ...
- java 不可不知的数据库知识-----事物
每一个java开发对数据库都不会陌生,提到数据库,那么就一定要了解的一个知识点------事物,下面就对事物简单记录一下相关知识点. 最初接触事物的时候其实是从JDBC事物开始的,JDBC比较基础,这 ...