Linux教程

Linux常用命令-文件搜索命令find

本文主要是介绍Linux常用命令-文件搜索命令find,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、find(文件搜索)

find命令格式

find   path  -option   【 -exec   -ok   |xargs  |grep  】 【  command  {} \;  】

一、path:要查找的目录路径。

       ~ 表示$HOME目录
       . 表示当前目录
       / 表示根目录 

二、exec:对搜索结果执行操作
形式为command {} ;,注意{}与;之间有空格

find /etc -name init* -a -type f -exec ls -l {} \  #在etc目录下查找init*的文件,并展示其详细信息

三、ok:与exec作用相同,
区别在于,在执行命令之前,都会给出提示,让用户确认是否执行
在这里插入图片描述

四、|xargs 与exec作用相同 ,起承接作用
区别在于 |xargs 主要用于承接删除操作 ,而 -exec 都可用 如复制、移动、重命名等

五、option:表示查询方式

option的常用参数如下:

  1. -name 根据文件名搜索(区分大小写,-iname不区分大小写)
find . -name "*.log"   #想要在当前目录及子目录中查找所有的‘ *.log‘文件
find . -name "[A-Z]*"   #想要的当前目录及子目录中查找文件名以一个大写字母开头的文件
find /etc -name "host*"  #想要在/etc目录中查找文件名以host开头的文件
find . -name "[a-z]*[4-9].log"  #如果想在当前目录查找文件名以一个个小写字母开头,最后是4到9加上.log结束的文件
  1. size 根据文件大小查找
find / size +204800   #在根目录下查找大于100MB的文件
find / size 204800     #在根目录下查找等于于100MB的文件

-a---两个条件同时满足
-o---两个条件满足任意一个即可
find /etc -size +163840 -a -size -204800 #在etc目录下查找大于80MB小于100MB的文件
  1. -user 根据文件所有者查找(nouser)
find $HOME -user peida    #在$HOME目录中查找文件属主为peida的文件 
find /etc -user peida    #在/etc目录下查找文件属主为peida的文件
find /home -nouser      #为了查找属主帐户已经被删除的文件,可以使用-nouser选项。在/home目录下查找所有的这类文件
说明:
这样就能够找到那些属主在/etc/passwd文件中没有有效帐户的文件。在使用-nouser选项时,不必给出用户名;
  1. -group 根据文件所属组查找
find /apps -group gem     #在/apps目录下查找属于gem用户组的文件
find / -nogroup    #要查找没有有效所属用户组的所有文件,可以使用nogroup选项。find命令从文件系统的根目录处查找这样的文件
  1. 按照更改时间或者访问时间查找文件
如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项。如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用mtime选项来查找这样的文件。 
用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。
find / -mtime -5  #希望在系统根目录下查找更改时间在5日以内的文件
find /var/adm -mtime +3   #为了在/var/adm目录下查找更改时间在3日以前的文件
-amin-------访问时间
-cmin-------文件属性
-mmin-------文件内容
  1. 根据文件类型查找
-type 根据文件类型查找
     f----文件   d----目录     l-----软链接
-inum----根据i节点查找
例:find /tmp -type f    #在/tmp目录下查找文件
例:find . -iunm 31531 -exec  rm {} \  #删除i节点为31531的文件并删除
  1. perm:按权限查找
在当前目录及子目录中,查找属主具有读写执行,其他具有读执行权限的文件  
find . -perm 755 -print 
查找用户有写权限或者组用户有写权限的文件或目录
      find ./ -perm /220
      find ./ -perm /u+w,g+w
      find ./ -perm /u=w,g=w
这篇关于Linux常用命令-文件搜索命令find的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!