find命令

来源:互联网 发布:c语言中字符串的定义 编辑:程序博客网 时间:2024/06/03 17:21

      find命令根据指定的查询条件,对文件进行搜索。由于find命令必须分析文件的结构,所以它的速度比locate命令慢的多,但可以用find命令实现很多用locate命令无法实现的功能。

   1、命令格式

    find  pathname  -option  [-print -exec -ok ...] 

   2.命令功能: 

   用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

   3.命令参数:

   pathname: find命令所查找的目录路径。例如用.来表示当前目 录,用/来表示系统根目录。 

  
 -print: find命令将匹配的文件输出到标准输出,即告诉find在终端界面上列出它的搜索结果。运行find命令时不需要包括该选项,该选项是默认的。 
如果想把搜索结果打印到一个文件,而不是终端显示界面,则可以使用-fprint选项,后面跟上想要创建的文件名。

   -exec: find命令对匹配的文件执行该参数所给出的shell命 令。用{}符号来代表找到的每个文件,并用\对分号(;)进行转义以作为命令的结束,注意{   }和\; 之间的空格。 
 

    -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行 该参数所给出的shell命令,在执行每一个命令之前,都会给出提 示,让用户来确定是否执行

 -name      根据文件名搜索文件

-perm   按照文件权限来查找文件。


 -prune  使用这一选项可以使find命令不在当前指定的目录中查 找,如果同时使用-depth选项,那么-prune将被find命令忽 略。

 -user   按照文件属主来查找。
 

-group  按照文件所属的组来查找文件。


 -mtime -n +n  按照文件的更改时间来查找文件, - n表示文 件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以 前。find命令还有-atime和-ctime 选项,但它们都和-m time 选项相同。


 -nogroup  查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。


 -nouser   查找无有效属主的文件,即该文件的属主在/etc/ passwd中不存在。
 

-newer file1 ! file2  查找更改时间比文件file1新但比文 件file2旧的文件。
 

-type  查找某一类型的文件,诸如:


 b - 块设备文件。


 d - 目录。
 

c - 字符设备文件。


 p - 管道文件。


 l - 符号链接文件。


 f - 普通文件。


 -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长 度以字节计。

 -depth:在查找文件时,首先查找当前目录中的文件,然后再在其 子目录中查找。


 -fstype:查找位于某一类型文件系统中的文件,这些文件系统类 型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了 本系统中有关文件系统的信息。
 

-mount:在查找文件时不跨越文件系统mount点。
 

-follow:如果find命令遇到符号链接⽂文件,就跟踪至链接所指向 的文件。
 

-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备 中。 另外,下面三个的区别: - 建时间来查找文件,-n指n天以内,+n指n天以前  

例子: 1. 在/ l o g s目录中查找更改时间在5日以前的⽂文件并删除它 们:   

 $ find logs -type f -mtime +5 -exec    -ok    rm {} \ 

2. Linux 用find命令查找文件大小为XX的文件的办法    

 例如:一个文件5556字节,可以这样写   

  find /root -size -5557c -size +5555c -exec ls -ld {} \;    即查找大于5555字节小于5557字节的文件,以上查找的是/root 目录 

  find /root -size -500K -size +50K -exec ls -ld {} \; 查找小于500k,大于50k文件

  通过指定各种选项,find命令可以搜索并列出满足条件的文件和文件夹。但find命令真正可圈可点的地方,是可以使用-exec选项为找到的文件执行命令,以及把它的输出通过管道发送给其他命令。find命令是linux系统中功能最强大的命令,非常重要,赶紧学起来吧。

0 0