文件查找工具:

文件:根据文件的种属性去找到相应文件

find命令:通过遍历指定的目标目录,实时查找符合指定属性的文件;

精确匹配;速度略慢;

find [OPTIONS] [查找路径] [查找条件] [处理动作]

 查找路径:默认为当前路径;

 查找条件:默认为指定路径下的所有文件;

 处理动作:默认为打印至屏幕;

查找条件:

-name "文件名":文件名支持使用globbing

*, ?, [], [^]

# find /etc -name "passwd*"

-iname "文件名"

-user USERNAME: 根据属主查找

-group USERNAME: 根据属组查找

-uid UID: 根据指定UID查找;

-gid GID: 根据指定GID查找;

-nouser: 查找没有属主的文件;

-nogroup:查找没有属组的文件;

组合查找条件:

与:-a, 查找条件1 -a 查找条件2 -a ...

所有条件必须同时满足

或:-o, 查找条件1 -o 查找条件2 -o ...

满足其中一个条件即可

非:-not, !   

-not 查找条件

# find /tmp -nouser -a -name "*centos*" -ls

# find /tmp -not \( -name "*.txt" -o -name "*.out" \)

# find /tmp -not -name "*.txt" -a -not -name "*.out"

查找条件(2)

-type TYPE: 根据文件类型查找

f: 普通文件

d: 目录文件

l: 符号链接文件

b: 块设备

c: 字符设备文件

p: 命令名管道文件

s: 套接字文件

-size [+|-]#UNIT:

常用单位有:k, M, G

#UNIT: #-1 < x <= #

2k:1.8k, 1.9k, 1.1k

-#UNIT:x <= #-1

-2k: 1k, 0.9k

+#UNIT: x > #

+2k: 2.1k, 3.1k

根据时间戳查找:

以“天”为单位

-atime [+|-]#

#: #= < x < #+1

-#: x < #

+#: x >= #+1

-mtime [+|-]#

-ctime [+|-]#

以“分钟”为单位

-amin [+|-]#

-mmin

-cmin

        根据权限查找:

-perm [+|-]MODE

MODE: 与MODE精确匹配

+MODE:任何一类用户的权限只要能包含对其指定的任何一位权限即可;

            -MODE:每一类用户的权限都包含对其指定的所有权限;

-222,666,664

处理动作:

-print: 默认动作,打印至屏幕;

-ls: 显示找到的文件的详细属性;

-exec COMMAND {} \;

-ok COMMAND {} \;

注意:find命令会一次性找到所有符合条件的文件,并一同传递给后面的命令;但有些命令不能接受过长的参数;解决办法:

find | xargs COMMAND