find查找特殊文件

当在系统中看到这些很二的文件时怎么去删除、重命名;如下

使用"ls"不跟选项显示到的结果

[[email protected] tmp]# ls
^&*(  [email protected]#$%^  *  *   document mysql  mydocument   myprogram

使用"ls -l"显示到的结果

[[email protected] tmp]# ls -l  看到这些文件名时怎样去删除和重命名 
total 20
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 ^&*(
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 [email protected]#$%^
-rw-r--r--. 1 root root    0 Jan 12 14:04 *
drwxr-xr-x. 2 root root 4096 Jan 12 14:05 * 
drwxr-xr-x. 2 root root 4096 Jan 12 14:07 document mysql
-rw-r--r--. 1 root root    0 Jan 12 14:07 mydocument 
drwxr-xr-x. 2 root root 4096 Jan 12 14:06 myprogram

使用rm尝试删除文件,结果看到并不能删除文件,更别说还有特殊字符了

[[email protected] tmp]# rm -rf mydocument
[[email protected] tmp]# ls -l
total 20
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 ^&*(
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 [email protected]#$%^
-rw-r--r--. 1 root root    0 Jan 12 14:04 *
drwxr-xr-x. 2 root root 4096 Jan 12 14:05 * 
drwxr-xr-x. 2 root root 4096 Jan 12 14:07 document mysql
-rw-r--r--. 1 root root    0 Jan 12 14:07 mydocument 
drwxr-xr-x. 2 root root 4096 Jan 12 14:06 myprogram 
[[email protected] tmp]# rm -rf myprogram
[[email protected] tmp]# ls -l
total 20
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 ^&*(
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 [email protected]#$%^
-rw-r--r--. 1 root root    0 Jan 12 14:04 *
drwxr-xr-x. 2 root root 4096 Jan 12 14:05 * 
drwxr-xr-x. 2 root root 4096 Jan 12 14:07 document mysql
-rw-r--r--. 1 root root    0 Jan 12 14:07 mydocument 
drwxr-xr-x. 2 root root 4096 Jan 12 14:06 myprogram

这里主要是说:find查找特殊文件并执行删除(rm)、重命名(mv),当然find还有许多选项查找功能,其实从上面的所述的可以看出使用"rm -rf mydocument" 或者 "rm -rf myprogram"都没有指定到文件的唯一能识别的文件名,因此命令可执行,但并不能完成我们的需求,

当然出来特殊符号的文件其他文件看来跟日常创建的文件没有任何区别,这些文件在创建时后面都分别跟了转义"\"加“空白"字符,如果在了解文件怎么创建的当然也可以删除,

如以上的删除命令 "rm -rf mydocument\ "和 "rm -rf myprogram\ "即可删除,但是我们怎么查看到这些文件加了转义符的呢?呵呵!这些文件是我创建的,我当然知道是怎么回事,那么如果在不知道的情况下如和去删除这些文件。

当然了显示文件还有一个叫 "ls -i"表示显示文件索引节点号,这个显示将是文件的唯一编号,当然也有叫"i节点"。认识就行不做强制区分

使用“ls -i"显示到的结果,可以查看到每个文件或目录前都有一个索引号(inode)

[[email protected] tmp]# ls -i
    14 ^&*(        11 *   128003 document mysql  128002 myprogram 
    15 [email protected]#$%^      12 *       13 mydocument

以上这些文件我们无法唯一标识文件名的本身,那么我们可以根据索引号来进行操作这些文件,那这里就得使用到find 选项中的 -inum 配合进行操作

find  [option] [ARG];这是find使用格式具体说明可查询http://man.linuxde.net/find 或其他文档
rm 命令:

[[email protected] tmp]# find . -inum 13 -exec rm -rf {} \;   删除"mydocument"文本文件  
[email protected] tmp]# ls -l
total 20
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 ^&*(
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 [email protected]#$%^
-rw-r--r--. 1 root root    0 Jan 12 14:04 *
drwxr-xr-x. 2 root root 4096 Jan 12 14:05 * 
drwxr-xr-x. 2 root root 4096 Jan 12 14:07 document mysql
drwxr-xr-x. 2 root root 4096 Jan 12 14:06 myprogram 

[[email protected] tmp]# find . -inum 128002 -exec rm -rf {} \;  删除"myprogram"目录文件
find: `./myprogram ‘: No such file or directory 报错信息此处目前可忽略,但是确实删除了
[[email protected] tmp]# ls -l
total 16
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 ^&*(
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 [email protected]#$%^
-rw-r--r--. 1 root root    0 Jan 12 14:04 *
drwxr-xr-x. 2 root root 4096 Jan 12 14:05 * 
drwxr-xr-x. 2 root root 4096 Jan 12 14:07 document mysql

mv命令:
[[email protected] tmp]# find -inum 14 -exec mv {} noderlinux \;  重命名 {}的值 
find: `./^&*(‘: No such file or directory 并且目录文件同样会报错信息
[[email protected] tmp]# ls -l
total 16
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 [email protected]#$%^
-rw-r--r--. 1 root root    0 Jan 12 14:04 *
drwxr-xr-x. 2 root root 4096 Jan 12 14:05 * 
drwxr-xr-x. 2 root root 4096 Jan 12 14:07 document mysql
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 noderlinux

[[email protected] tmp]# find -inum 15 -exec mv {} leaderlinux \;
find: `./[email protected]#$%^‘: No such file or directory 并且目录文件同样会报错信息
[[email protected] tmp]# ls -l
total 16
-rw-r--r--. 1 root root    0 Jan 12 14:04 *
drwxr-xr-x. 2 root root 4096 Jan 12 14:05 * 
drwxr-xr-x. 2 root root 4096 Jan 12 14:07 document mysql
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 leaderlinux
drwxr-xr-x. 2 root root 4096 Jan 12 14:09 noderlinux

其他使用同理

时间: 2024-10-14 07:18:55

find查找特殊文件的相关文章

JVM查找类文件的顺序

Java虚拟机(JVM Java Virtual Machine)查找类文件的顺序 1.如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件. 2.如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件. 3.classpath环境变量值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下在查找一次. 4.classpath环境变量值的结尾出如果没有分号,那么JVM在classpa

在eclipse中查找指定文件

1.ctrl+h打开搜索界面 File Search: containing text填*,File name patterns填写hello.*,可以找到hello为命名的文件 知道文件类型,查找里面的login 2.ctrl+shift+t查找工作空间(workspace)java类文件 注意:由于是查找工作空间的,所以多的项目时找到多个类用鼠标指向去看时属于哪个项目 如下查找类文件ServiceVO,找到后会自动指向该类文件 3.ctrl+shift+r 和[Ctrl+Shift+T]对应

centos磁盘满了,查找大文件并清理

今天发现vps敲入crontab -e 居然提示 “Disk quota exceeded” 无法编辑.于是"df -h"查了查发现系统磁盘空间使用100%了.最后定位到是/var/spool/mail/root 这个文件有几个G.于是清理掉,问题解决.如果不知道是哪些文件占了磁盘空间,可以看下面查找大文件方法. linux操作系统中,经常会遇到磁盘空间满的问题.遇到这样的问题,先查下是什么文件过大或过多引起的,至于引起这个更深一层的原因,先不探讨.怎么查看大文件所在的路径,linux

Linux如何查找大文件或目录总结(转)

在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件夹的方法. 1: 如何查找大文件? 其实很多时候,你需要了解当前系统下有哪些大文件,比如文件大小超过100M或1G(阀值视具体情况而定).那么如何把这些大文件搜索出来呢?例如我要搜索当前目录下,超过800M大小的文件 [[email protected] u03]# pwd /u03 [[email

JVM查找类文件的顺序(转)

配置classpath 根据path环境变量的原理,可以定义一个名为classpath环境变量,将要运行的class文件所在目录定义在该变量中. 例:set classpath=c:\ classpath变量值是java类文件的目录 path变量是windows程序文件的目录 JVM查找类文件的顺序: 如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件. 如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件. 值的结尾处

系统清理——查找大文件

在系统中查找大文件的方法: 1. 统计当前文件夹的文件(或文件夹)大小.并依照从大到小的顺序排序 du -s /home/* | sort -nr * -h已易读的格式显示指定文件夹或文件的大小 * -s选项指定对于文件夹不具体显示每一个子文件夹或文件的大小 2. 查找大于100M的文件.并显示具体信息 find . -type f -size +100M -exec ls -lh {} \; find的处理动作能够是: -print     默觉得输出 -ls         显示查找到的文件

Linux如何查找大文件或目录总结

Linux如何查找大文件或目录总结 原帖地址:http://www.cnblogs.com/kerrycode/p/4391859.html  谢谢潇湘隐者,谢谢老大 在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件夹的方法. 1 如何查找大文件 其实很多时候,你需要了解 /u01/app/oracle/oradata/prod/ 下有哪些大的数据文件,比如文件大小超过100M或1G(阀值视具体情况而定).那么如何把这些大文件搜索出来呢?

在linux/unix中查找大文件

在linux/unix中查找大文件,如查找大于100M文件的位置路径,查找等于10M文件的位置路径等等,下面就介绍几个实现快速查找的命令: 1. 查找指定目录下所有大于100M的文件,命令为 find path -type f -size +100M  (path 为自己指定的目录,如当前目录./): 2. 查找指定目录下等于10M的文件,命令为 find path -type f -size 10M (path 为自己指定的目录,如当前目录./): 3. 查找指定目录下小于1M的文件,命令为

centos磁盘爆满,查找大文件并清理

今天发现vps敲入crontab -e 居然提示 “Disk quota exceeded” 无法编辑.于是"df -h"查了查发现系统磁盘空间使用100%了.最后定位到是/var/spool/mail/root 这个文件有几个G.于是清理掉,问题解决.如果不知道是哪些文件占了磁盘空间,可以看下面查找大文件方法. 以下内容转自 http://hi.baidu.com/11haiou/item/f3a4878b601e084e840fab17 linux操作系统中,经常会遇到磁盘空间满的

linux系统上如何快速的查找一个文件?

以前看到过一句话:linux的水平体现在快速查找文件上~~~ ,或许这句话言过其实 但是因为linux上一切皆文件,任何我们想做的事情都可以通过编辑文件来完成, 如服务器的配置,维护,一切的一切我们都是在与文件打交道~·~· 下面我给大家介绍如何快速的查找一个文件 假如 查找的是脚本文件(执行文件)which filename 查找的是二进制的文件(执行文件)whereis -b filename 查找特定文件   whereis filename   (利用数据库来查找) locate 文件的