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 ...
随机推荐
- linux下nano中复制粘贴剪切的快捷键是什么
答: 1.复制:alt+6 2.剪切:ctrl+k 3.粘贴:ctrl+u 4.自由剪切: ctrl+6指定起始剪切位置,按上下左右键来选中内容,然后按下ctrl+k即可自由剪切 5.撤销: alt+ ...
- myEclipse项目转成Eclipse项目
这里说一种把myEclipse项目转成Eclipse项目继续开发 1. 请首先确保你的eclipse是javaee版本的,或者已经安装看wtp插件 2. 然后修改eclipse工程下的.proje ...
- testng基础知识:注解的执行顺序
1. 单类,无继承父子关系 code: public class basicTest { @BeforeSuite(alwaysRun = true) public void beforeSuite_ ...
- idea 2017 常用图标
- 【编程小题目7】求s=a+aa+aaa+aaaa+aa...a的值
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制 #include <iostr ...
- IPFS星际节点网站 IPNS域名解析教程
IPNS星际文件系统IPFS提供的域名命名空间,相当于经典HTTP协议中的DNS.只不过是,IPNS是将内容寻址的哈希值(HASH值)转换为域名,而DNS是将IP地址转换为域名. 前段时间,IPFS协 ...
- 【链接】SpringBoot启动错误
[错误解决]SpringBoot启动错误 https://blog.csdn.net/Small_Mouse0/article/details/78551900
- spring boot 之Rabbitmq 基本配置
/* * Copyright (c) 2017 4PX Information Technology Co.,Ltd. All rights reserved. */package com.fpx.p ...
- tensorflow wide deep 介绍
https://blog.csdn.net/heyc861221/article/details/80131369 https://blog.csdn.net/heyc861221/article/d ...
- org.springframework.stereotype.Service和com.alibaba.dubbo.config.annotation.Service两种service的区别
这两个Service,都可以在service类头上使用@Service的注解,于是我就写错了,查了半天才发现.他们的区别大概是这个样子的: org.springframework.stereotype ...