find [path…] [expression]
常用选项
-name:指明要查询的文件名;
-type :指明所要查询的文件类型;
(1) l :符号文件。
(2) f:普通文件。
(3) d:目录文件。
(4) p:管道文件。
(5) c:字符设备文件,提供连续的数据流,读取数据按照先后顺序,通常不支持随机存取,比如键盘、鼠标、串口。
(6) b:块设备文件,从设备的任意位置读取一定长度的设备,也就是可以随机存取,比如硬盘、U盘、SD卡。
(7) socket:套接字文件。
(8)a: 并且
(9):或者
-amin [+|-] time:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-mtime [+|-] time:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
图片来源于网络
示例1:查询24小时内被修改过的文件,通过使用-mtime 0 即可完成操作,现在时间是2017.01.13 21:00,那0就表示从当前时间到2017.01.12 21:00这个时间之内被修改过的文件;
示例2:查询2天内/etc目录下被修改过的文件;
~]# find /etc -mtime -2 #是指01.11那天到01.13中间的时间,但是其实并不包含11日那天。
示例3:查询2天前修/etc目录被修改过的文件;
1 ~]# find /etc -mtime +2 #与【-】号正相反从01.11号开始算,并包含11号当天。
-size [+|-] 文件大小:查找指定文件大小的文件;
-perm [+|-]文件权限:找符合指定的权限数值的文件或目录;
+:表示的是或的意思,比方说查找具有4755权限的文件,那如果文件权限为644也会被查询出来,因为4755中也包含了644。
-:表示的是与的意思,即属主属组和其他这三者的权限全部符合指定条件才会被选定。
-newer <参考文件或目录名>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-maxdepth <目录层级>:这个在特定情况下也会用到,表示如果目录是多层嵌套的,那设定此值就是最大查询到的目录层数。
-nouser:查找没有属主的文件或目录;
-nogroup:查找没有属组的文件或目录;
-user <用户名>:查找属主为指定用户的文件或目录;
-group <组名>:查找属组为指定属组的文件或目录;
-path <范本样式>:指定字符串作为寻找目录的条件;
-prune :不寻找字符串作为寻找文件或目录的范本样式,此选项可以在查询的目录中选择一些不希望被查找的目录来忽略,通常跟-path搭配使用;
示例:find / -path "/proc" -prune
最后要说的一点就是find命令还有一个额外的功能,查找完指定条件的结果之后还可以通过exec参数来与其他命令组合使用来进行返回结果的处理。
示例:查找系统中没有属主和属组的文件,并将其进行删除操作;
1 ~]# find / -path "/proc" -prune -o -nouser -nogroup -exec rm -rf {} \;
感谢您的来访,获取更多精彩文章请收藏本站。

暂无评论内容