首页 > 编程知识 正文

Linux下的find命令,find命令linux

时间:2023-05-04 08:09:20 阅读:211755 作者:4206

一、概述:
因为Linux下面一切皆文件,经常需要搜索某些文件来编写,所以对于linux来说find是一条很重要的命令。linux下面的find指令用于在目录结构中搜索文件,并执行指定的操作。它提供了相当多的查找条件,功能很强大。在不指定查找目录的情况下,find会在对整个系统进行遍历。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间。

1、命令格式
find [查找目录] [查找规则] [查找完后的操作]
即:find pathname -option [-print -exec -ok …]

2、命令功能
用于在文件树中查找文件,并做相应的处理,(有可能访问磁盘)。

3、命令参数
(1)pathname:表示所要查找的目录路径,例如”.”表示当前目录,”/”表示根目录。
(2)-print:将find找到的文件输出到标准输出。
(3)-exec:对找到的文件执行exec这个参数所指定的shell命令,相应的形式为:-exec command {} ; 将查到的文件进行command操作,”{}”就代替查到的文件。

注意:
1)”{}”和””之间有一个空格。
2)-ok:和-exec的作用相同,只不过-ok更加安全一点,在执行每一个命令之前,系统会让用户确定是否执行。

二、查找规则:
1、根据文件名查找
(1)-name :根据文件名进行查找,区分大小写精确查找。
【例】

(2)-iname:根据文件名查找,不区分大小写
【例】

(3)文件名通配符:
“*”:通配任意的字符,可以是任何东西。
【例】

(4)”?”:可表示任意单个字符
【例】

注:与上例比较得知,空不为单字符,所以不能查找“file”文件。

(5)”[]”表示通配括号里面的任意一个字符,注意[]里面的内容会被解析成单个字符。
【例】

2、根据文件的时间戳信息查找文件
在根据时间戳信息查找的时候,所有的time都是以天为单位,min都是以分钟为单位。+n表示n以前,-n表示n以内。

(1)以最近一次存取的时间为参数
1)-atime:
A、find pathname -atime +n //表示n天前存取过的文件
B、find pathname -atime -n //表示以当前时间为起点前n天内存取过的文件

2)-amin :
A、find pathname -amin +n //表示n分钟前存取过的文件。
B、find pathname -amin -n //表示以当前时间为起点前n分钟内存取过的文件。
【例】

(2)以最近一次修改的时间为参数
1)-mtime:
A、find pathname -mtime +n //表示n天前修改过的文件
B、find pathname -mtime -n //表示以当前时间为起点前n天内修改 过的文件

2)-mmin:
A、find pathname -mmin +n //表示n分钟前存取过的文件
B、find pathname -mmin -n //表示以当前时间为起点前n修改 内存取过的文
【例】

(3)以最近一次更改的属性为参数
1)-ctime:
A、find pathname -ctime +n //表示n天前更改 过的文件
B、find pathname -ctime -n //表示以当前时间为起点前n天内更改 过的文件

2)-cmin:
A、find pathname -cmin +n //表示n分钟前更改过的文件
B、find pathname -cmin -n //表示以当前时间为起点前n分钟内更改 过的文件
【例】

3、根据文件所属用户和所属组来查找文件
(1)根据文件所有者查找文件:-user
【例】

(2)根据所有者所在的组查找:-group
【例】

4、根据nouser或nogroup查找
(1)查找无有效属主的文件:-nouser
find pathname -nouser
(2)查找无有效属组的文件:-nogroup
find pathname -nogroup
5、-perm :根据权限来查找文件
【例】

6、根据uid和gid查找文件
(1)根据文件的uid查找:-uid
(2)根据文件所在组的gid查找:-gid

7、-type:根据文件类型查找文件
(1)普通文件:f
find pathname -type f
【例】

(2)目录文件:d
find pathname -type d
【例】

(3)链接文件:l
find pathname -type l
(4)块设备文件:b
find pathname -type b
(5)字符设备文件:c
find pathname -type c
(6)管道设备文件:p
find pathname -type p
(7)套接字文件:s
find pathname -type s

8、根据文件大小查找文件:-size
(1)find pathname -size +n //表示大于n字节的文件
(2)find pathname -size -n //表示小于n字节的文件
(3)find pathname -size n //表示等于n字节的文件
【例】

9、按照参考文件的更改时间查找
-newer :file1//查找更改时间比file1的更改时间距离当前时间近的文件
【例】

10、maxdepth和mindepth
(1)-maxdepth
1)-maxdepth n : 搜索深度距离当前目录最多n个子目录深度
【例】

(2)-mindepth
2)-mindepth n :搜索深度距离当前目录至少n个子目录深度
【例】

11、查找路径下为空的文件或文件夹:-empty
【例】

12、按照硬连接的数目进行查找
(1)-link n :硬连接连接数等于n的文件或目录
【例】

(2)-link +n :硬连接连接数大于n的文件或目录
【例】

(3)-link -n :硬连接连接数小于n的文件或目录
【例】

13、-a、-o,-not(也就是与、或、非)
(1)-a:连接两个不同的条件(即两个条件必须同时为真)
【例】

(2)-o:连接两个不同的条件(两个条件只要满足一个即可)
【例】

(3)-not:对条件进行取反
【例】

14、查找完成之后的操作
(1) -exec command {} ;: 其中,”{}”就代表查找之后返回的文件。
【例】

(2)-ok command {} ;-ok相对于-exec而言更安全一点,会让用户确定所要执行的操作。
【例】

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。