通过文件的inode号来删除文件
2012-05-21 19:34
204 查看
由于各种原因在linux下总是会出现那么一些乱码文件,或者不能正常输入的文件名。当遇到这些无法正常输入的文件名要删除的时候就需要使用文件对应的inode号对文件进行删除。
[root@localhost test]# ls
??2012$05*21 2012\05$21
、2012$05*21 2012\05$21 这个文件是我特意创建的两个文件,、2012$05*21 使用ls命令显示成了??2012$05*21,使用rm命令删除的时候无法输入文件名;2012\05$21由于中间有‘\’‘$’这个符号,自己ok·直接使用rm 2012\05$21 是无法删除的,如果只是文件名中有一些特殊的字符的话可以使用‘\’转义符,rm 2012\\05\$21进行删除。
[root@localhost test]# rm 2012\05$21
rm: cannot remove `2012051': No such file or directory
[root@localhost test]# rm 2012\\05\$21
rm: remove regular empty file `2012\\05$21'? y
、2012$05*21这个文件在linux下显示为??2012$05*21删除这个文件的时候我们无法输入它的文件名,这时候就需要用到文件的inode号来删除。
如何查看一个文件的inode号?
查看文件的inode号可以使用ls命令的-i参数。
[root@localhost test]# ls -i
388678 ??2012$05*21
文件名前面对应的一个数字就是这个文件的inode号
利用inode号和find命令删除文件
[root@localhost test]# find ./ -inum 388678 -exec rm -i {} \;
rm: remove regular empty file `./\241\2422012$05*21'? y
或者这样
[root@localhost test]# rm `find ./ -inum 388678`
rm: remove regular empty file `./\241\2422012$05*21'? y
分析下这个删除过程的原理其实很简单,通过ls -i 这个命令获得要删除文件的inode号,然后使用find命令的-inum选项查找对应inode号的文件名,然后将文件夹名通过find的-exec参数或者通过``反引号传递给rm命令本文出自 “lovvvve的学习笔记” 博客,请务必保留此出处http://lovvvve.blog.51cto.com/3828397/871747
[root@localhost test]# ls
??2012$05*21 2012\05$21
、2012$05*21 2012\05$21 这个文件是我特意创建的两个文件,、2012$05*21 使用ls命令显示成了??2012$05*21,使用rm命令删除的时候无法输入文件名;2012\05$21由于中间有‘\’‘$’这个符号,自己ok·直接使用rm 2012\05$21 是无法删除的,如果只是文件名中有一些特殊的字符的话可以使用‘\’转义符,rm 2012\\05\$21进行删除。
[root@localhost test]# rm 2012\05$21
rm: cannot remove `2012051': No such file or directory
[root@localhost test]# rm 2012\\05\$21
rm: remove regular empty file `2012\\05$21'? y
、2012$05*21这个文件在linux下显示为??2012$05*21删除这个文件的时候我们无法输入它的文件名,这时候就需要用到文件的inode号来删除。
如何查看一个文件的inode号?
查看文件的inode号可以使用ls命令的-i参数。
[root@localhost test]# ls -i
388678 ??2012$05*21
文件名前面对应的一个数字就是这个文件的inode号
利用inode号和find命令删除文件
[root@localhost test]# find ./ -inum 388678 -exec rm -i {} \;
rm: remove regular empty file `./\241\2422012$05*21'? y
或者这样
[root@localhost test]# rm `find ./ -inum 388678`
rm: remove regular empty file `./\241\2422012$05*21'? y
分析下这个删除过程的原理其实很简单,通过ls -i 这个命令获得要删除文件的inode号,然后使用find命令的-inum选项查找对应inode号的文件名,然后将文件夹名通过find的-exec参数或者通过``反引号传递给rm命令本文出自 “lovvvve的学习笔记” 博客,请务必保留此出处http://lovvvve.blog.51cto.com/3828397/871747
相关文章推荐
- linux 通过inode删除文件
- 通过inode删除指定文件
- 通过文件的 inode 号来删除文件
- 通过 Inode 删除文件
- 通过对inode的修改对文件操作进行扩充
- Linux中通过命令直接删除文件中最后一行
- 通过代码链接ftp上传下载删除文件
- 浅谈Linux下通过find命令进行rm文件删除的小技巧
- linux下实现文件存储系统,创建和删除大量文件或文件夹时,updatedb进程会更新文件索引节点inode
- 如何通过使用注册项 (.reg) 文件添加、修改或删除注册表子项和值
- php实例分享之通过递归实现删除目录下的所有文件详解
- php实例分享之通过递归实现删除目录下的所有文件详解
- 磁盘空间占满inode结点没用完 并删除了文件但是释放不了
- springBoot通过表单的提交进行AmazonS3 进行文件的上传下载删除(不存储在本地)。
- 在 Laravel 中通过 Artisan View 扩展包创建及删除应用视图文件
- log view for sql server (一款通过解析MSSql2008日志文件恢复表数据删除的工具软件)
- Windows API函数删除指定文件目录下所有内容vc6.0通过
- Win8.1通过删除C盘中的Windows.old文件来给C盘瘦身
- LevelDb简单介绍和原理——本质:类似nedb,插入数据文件不断增长(快照),再通过删除老数据做更新
- 通过CLR存储过程删除过期的数据库Bak备份文件