linux系统上有以下两个用于查找文件的命令:
locate:
优点:基于数据库查找,速度快。
缺点:不是实时查找,查找的结果不够准确
find:
优点:实时查找,能够根据指定的单一条件或组合条件进行查找,查找结果精准
缺点:查找速度较locate要慢
在工作中,find命令比较常用
find 命令使用格式:
find [option] [directory] [condition] [action]
缺省模式时,会列出当前目录及其子目录的所有文件
condition:
-name:按文件名查找,区分大小写
-iname:按文件名查找,不区分大小写
-size [-/+]#:按文件的大小进行查找,常用单位有k(小写)、M、G
[-/+]#的意义:
#:#-1< SIZE < #
-#:0 < SIZE < #-1
+#:# < SIZE
-type:按文件类型查找
f、d、l、s、b、c、p
-user:按文件属主查找
-group:按文件属组查找
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
-perm:按文件权限进行查找
perm:文件的三类用户权限必须和给出的权限完全吻合
+perm:文件的九位权限只要有一位和给出的权限符合就行(隐含或的意思)
-perm:文件的三类用户权限包含给出的权限(隐含与的意思)
-atime [-/+]#:文件的访问时间,以天为单位
-mtime [-/+]#:文件的修改时间,以天为单位
-ctime [-/+]#:文件的改变时间,以天为单位
-amin [-/+]#: 文件的访问时间,以分钟为单位
-mmin [-/+]#: 文件的修改时间,以分钟为单位
-cmin [-/+]#: 文件的改变时间,以分钟为单位
[-/+]#的意义:
#:# < TIME < #+1
-#:# < TIME
+#:TIME < #+1
condition支持-a、-o、-not等逻辑运算符,使用逻辑运算符是符合德·摩根定律
-not \( A -o B \) = -not A -a -not B
-not \( A -a B \) = -not A -o -not B
action:
-exec:
示例:find . -type f -exec file '{}' \;
-ok:
示例:find . -type f -ok file '{}' \;
xargs:
示例:find . -type f | xargs file