locate
:不是实时的文件查找,根据全系统文件数据库进行查找的,模糊查找,但是速度较快update
命令用来生成文件数据库;locate reads one or more databases prepared by updatedb(8) and writes file names matching atleast one of the PATTERNs to standard output, one per line
- 最常使用的命令是
find
,实时查找,精确查找,通过遍历目录中的所有文件的查找,但是速度慢; - 格式:
find 查找路径 查找标准 查找以后的处理操作
,默认为当前目录进行查找; - 查找标准:
-name filename
:用来做精确查找;支持文件名通配:*
:任意长度任意字符;?
:任意单个字符;
-iname filename
:表明在匹配不区分大小写;-regex PATTERN
:基于正则表达式实现文件名匹配;-user USERNAME
:进行用户查找;-group GROUPNAME
:按照组进行查找;-uid uidname
:按照uid
进行查找,因为一个用户删除之后,不在用户家目录里面的文件仍然是存在的,并且属主为之前用户的uid
,对于这些文件的管理需要使用uid
进行查找;-gid gidname
:按照gid
进行查找,对于组的概念和上面是一样的;-nouser
:查找没有用户的文件;-nogroup
:查找没有属组的文件;注意:用户或者组再被使用-r
删除后,用户或者租
的id
号仍然存在,这个用户的文件任然是存在的;-type
通过类型进行查找:f
:普通文件;d
:目录文件;c
:字符设备;b
:块设备;l
:链接文件;p
:管道设备;s
:套接字文件;
-size
:#单位k|M|G
:同样可以使用+-
号表示大于或者小于该大小,在一定范围内的都会显示;- 组合条件进行查找:
-a
:表示需要同时满足;-o
:表示两种中间满足一个;-not
:表示非;- 例如:
find /tmp –type – not –d –a –not –f
:表示查找不是目录并且不是套接字的文件; find ./ -not –user user1 –o –not –type d
等价于find ./ -not \( -user user1 –a –type d \)
;
- 例如:
- 根据时间戳进行查找:
-mtime
:表示修改时间;-ctime
:表示文件的修改时间;-atime
:表示文件的访问时间;- 支持使用
+|-
进行修饰,上面表示的时间单位是天,如果不使用表示精确到某一个时刻;-
:表示多久时间之内访问的文件;+
:表示多久时间之前访问的文件;5
:表示5
天之前访问的文件;-5
:表示五天之内访问的文件;+5
:表示五天之前访问的文件; - 同样也支持精确到分钟的操作:
-mmin
:表示修改时间;-amin
:表示访问时间;-cmin
:表示改变时间;
- 按照权限进行查找:
-perm MODE
:表示精确匹配,;\MODE
:表示只要有一个权限匹配到就可以;-perm –mode
:当文件权限完全包含mode
时,才可以进行匹配;find ./ perm -001
find
执行的动作:-print
:显示;-ls
:类似ls –l
的形式显示每一个文件的详细信息;-ok command {} \;
:使用\;
结尾,否则就是语法错误,作为文件名称占位符号;find ./ -perm -mode 001 -ok chmod o-x {} \;
这种方式是需要确认的-exec command {} \;
: 这里是不会存在提示信息的;find /etc –size +1M –exec echo {} >> /tmp/etc.largefiles \;
作用等价于find /etc –size +1M | xargs echo >> /tmp/etc.largefiles
;
文件查找命令
最新推荐文章于 2021-08-11 15:02:11 发布