2015-08-10 创建
1、概述
在目录层次中查找文件
2、命令格式
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
其实[-H] [-L] [-P] [-D debugopts] [-Olevel]这几个选项并不常用(至少在我的日常工作中,没有用到过),上面的find命令的常用形式可以简化为:
find [path...] [expression]
path:find命令所查找的目录路径。例如用 . 或者 ./ 来表示当前目录,用/来表示系统根目录expression:expression可以分为——“-options [-print -exec -ok ...]”
-options,指定find命令的常用选项,下节详细介绍
-print,find命令将匹配的文件输出到标准输出
-exec,find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \;,注意{}和\;之间的空格
1、为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中:find ./ -type f -exec ls -l {} \;
2、在/logs目录中查找更改时间在5日以前的文件并删除它们:find /logs -type f -mtime +5 -exec rm {} \;
-ok,和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。【不常用】
1、find . -name "*.log" -mtime +5 -ok rm {} \; 在当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示
3、常用命令格式
表达式有 options【总是返回 true】,tests【返回true或者false】 和 actions【返回true或者false】 组成
如果表达式没有包含 actions 除了 -prune, -print,那么执行所有文件为 true
表达式:
选项:
-d 和 -depth 是相同的 【已过时】【不过执行该选项时,会报警告】
-daystart 估量时间(对于 -amin, -atime, -cmin, -ctime, -mmin, 和 -mtime)从今天开始而不是24小时之前。
-depth 查找目录中的内容,然后再查找目录自身。对于 -delete 操作而言,也要使用该选项
[oldboy@moban ~]$ find ./oldboy ./oldboy # 目录有内容 ./oldboy/dir3 ./oldboy/dir1 # 先目录后目录中的内容 ./oldboy/dir1/t1 ./oldboy/dir1/t2 ./oldboy/dir1/bbb ./oldboy/dir1/t3 ./oldboy/dir2 [oldboy@moban ~]$ find ./oldboy -depth ./oldboy/dir3 ./oldboy/dir1/t1 ./oldboy/dir1/t2 ./oldboy/dir1/bbb ./oldboy/dir1/t3 ./oldboy/dir1 # 先目录中的内容后目录 ./oldboy/dir2 ./oldboy # 目录有内容【放到了最后】-maxdepth levels 查找的最大深度【层级】。如: find /etc/ -maxdepth 2
-mindepth levels 查找的最小深度【层级】。 find ./oldboy -mindepth 1 代表查询所有文件
-mount 在当前的文件系统中查找文件(不进入其他文件系统)
测验【也不知道翻译的适不适合】
数字参数可以被指定【这个很重要】,如下:
+n for greater than n, 大于数字n
-n for less than n,小于数字n
n for exactly n.正好是n
-amin n 最近 n 分钟前 那时刻【前n分钟内】文件被访问。如下
[oldboy@moban oldboy]$ find ./ -amin +5 # 前5分钟之前被访问【6分钟之前】 ./.dir1 ./dir1/bbb ./dir1/t3 ./dir2 [oldboy@moban oldboy]$ find ./ -amin -5 # 前5分钟到当前时间被访问【0-5 不包含 5】 ./ ./a4 [oldboy@moban oldboy]$ find ./ -amin 5 # 前5-6(不包含6)分钟被访问 ./aaa-anewer file 文件或目录的最近访问时间比 file 的最近修改时间还要新【离当前时间更近】
[oldboy@moban oldboy]$ ll total 36 -rw-rw-r-- 1 oldboy oldboy 27 Aug 6 23:34 a3 -rw-rw-r-- 1 oldboy oldboy 0 Aug 14 13:00 a4 -rw-rw-r-- 1 oldboy oldboy 0 Aug 14 17:00 a5 -rw-rw-r-- 1 oldboy oldboy 46 Aug 3 21:50 aaa drwxrwxr-x 3 oldboy oldboy 4096 Jul 27 20:42 dir1 drwxrwxr-x 2 oldboy oldboy 4096 Jul 26 09:52 dir2 drwxrwxr-x 2 oldboy oldboy 4096 Jul 26 09:52 dir3 -rw-rw-r-- 1 oldboy oldboy 37 Aug 6 23:39 log.txt [oldboy@moban oldboy]$ find ./ -anewer a4 ./ ./a5-atime n 文件或目录在 n*24 小时之前【那一天】被访问
[oldboy@moban oldboy]$ ll total 36 -rw-rw-r-- 1 oldboy oldboy 12 Aug 6 23:14 a1 -rw-rw-r-- 1 oldboy oldboy 35 Aug 6 23:24 a2 -rw-rw-r-- 1 oldboy oldboy 27 Aug 6 23:34 a3 -rw-rw-r-- 1 oldboy oldboy 0 Aug 14 13:00 a4 -rw-rw-r-- 1 oldboy oldboy 0 Aug 14 17:00 a5 -rw-rw-r-- 1 oldboy oldboy 46 Aug 3 21:50 aaa drwxrwxr-x 3 oldboy oldboy 4096 Jul 27 20:42 dir1 -rw-rw-r-- 1 oldboy oldboy 37 Aug 6 23:39 log.txt [oldboy@moban oldboy]$ find ./ -atime 4 # 4-5(不包含5)天,前被访问 ./a4 ./a5 [oldboy@moban oldboy]$ find ./ -atime -4 # 4(不包含)天前到当前时间内被访问 ./ ./.dir1 ./dir1 ./dir1/bbb [oldboy@moban oldboy]$ find ./ -atime +4 # 5(包含)天前到更早的时间段被访问 ./a2 ./a3 ./aaa ./dir1/t1 ./dir1/t2 ./dir1/t3 ./log.txt ./a1-cmin n 文件或目录的状态被 改变在前 n 分钟的时候 【前 n 分钟那段时间内】
-cnewer file 文件或目录的状态被改变比 file 的修改时间更新【离当前时间更近】
-ctime n 文件或目录的状态被改变 在前 n*24 那一天内
-mmin n 文件或目录的最近修改时间是在前 n 分钟的时候
-newer file 文件或目录的最近修改时间比 file的修改时间 更新【离当前时间更近】
-mtime n 文件或目录的最近修改时间是在前 n*24 小时的时候
这六个的示例可以参照 前面的示例。
-empty 常规文件或者目录为空的【文件或目录为空 满足条件】
-gid n 文件或目录的属组ID 是 n
-group gname 文件或目录的属组名称是 gname
-inum n 文件或目录的 inode 数为 n
-ilname pattern 就像 -lname,但是大小写不明感
-iname pattern 就像 -name,但是大小写不明感
-iregex pattern 就像-regex ,但是大小写不明感
-iwholename pattern 就像 -wholename ,但是大小写不明感
-links n 文件或目录有 n 个连接
-lname pattern 文件或目录是链接文件,并且链接内容匹配 pattern
[oldboy@moban oldboy]$ ll /etc/ # 部分内容 total 36 -rw-r--r--. 1 oldboy oldboy 6455 Jan 12 2010 protocols -rw-r--r--. 1 oldboy oldboy 220 Oct 14 2008 quotagrpadmins -rw-r--r--. 1 oldboy oldboy 259 Nov 22 2013 quotatab lrwxrwxrwx. 1 oldboy oldboy 7 Jun 22 22:26 rc -> rc.d/rc lrwxrwxrwx. 1 oldboy oldboy 10 Jun 22 22:26 rc0.d -> rc.d/rc0.d lrwxrwxrwx. 1 oldboy oldboy 10 Jun 22 22:26 rc1.d -> rc.d/rc1.d lrwxrwxrwx. 1 oldboy oldboy 10 Jun 22 22:26 rc2.d -> rc.d/rc2.d lrwxrwxrwx. 1 oldboy oldboy 10 Jun 22 22:26 rc3.d -> rc.d/rc3.d lrwxrwxrwx. 1 oldboy oldboy 10 Jun 22 22:26 rc4.d -> rc.d/rc4.d lrwxrwxrwx. 1 oldboy oldboy 10 Jun 22 22:26 rc5.d -> rc.d/rc5.d lrwxrwxrwx. 1 oldboy oldboy 10 Jun 22 22:26 rc6.d -> rc.d/rc6.d drwxr-xr-x. 10 oldboy oldboy 4096 Jun 22 22:26 rc.d lrwxrwxrwx. 1 oldboy oldboy 13 Jun 22 22:26 rc.local -> rc.d/rc.local lrwxrwxrwx. 1 oldboy oldboy 15 Jun 22 22:26 rc.sysinit -> rc.d/rc.sysinit [oldboy@moban ~]$ find /etc/ -maxdepth 1 -lname 'rc.d*' # 部分内容 ./etc/rc3.d ./etc/rc ./etc/rc.sysinit ./etc/rc5.d ./etc/rc2.d ./etc/rc4.d ./etc/rc0.d ./etc/rc1.d ./etc/rc.local ./etc/rc6.d-name pattern 通配符匹配文件名称
-nogroup 查找无效属组文件
-nouser 查找无效属主文件
-path pattern 模式匹配文件或目录名称。对‘/’ 和 ‘.’ 不会进行特殊处理。【全路径匹配】
[oldboy@moban ~]$ find ./ -path './oldboy*' ./oldboy.txt ./oldboy ./oldboy/a5 ./oldboy/a3 ./oldboy/aaa ./oldboy/dir3 ./oldboy/dir1 ./oldboy/dir1/t1 ./oldboy/dir1/t2 ./oldboy/dir1/bbb ./oldboy/dir1/t3 ./oldboy/dir2 ./oldboy/log.txt ./oldboy/a1 [oldboy@moban ~]$ find ./ -path './oldboy.*' ./oldboy.txt [oldboy@moban ~]$ find ./ -path './oldb.*' [oldboy@moban ~]$ find ./ -path './oldboy/d*' ./oldboy/dir3 ./oldboy/dir1 ./oldboy/dir1/t1 ./oldboy/dir1/t2 ./oldboy/dir1/bbb ./oldboy/dir1/t3 ./oldboy/dir2
-perm mode 文件权限精确匹配(支持八进制【最好用这个】和符号模式'u','g','o'),【比喻:让你做什么就做什么,其他的都不能做】
其中:'find ./ -perm 755' 匹配权限为 rwxr-xr-x 的文件;'find ./ -perm g=w' 匹配权限为 ----w---- 的文件。
[oldboy@moban ~]# find ./ -perm 755 ./scf ./scf/lib ./scf/service ./scf/service/deploy ./scf/service/deploy/product ./scf/service/deploy/info ./scf/doc ./scf/bin-perm -mode 这个也很简单,只是描述起来比较复杂。怎么说呢,就是匹配 -perm 中有该位权限的文件。‘find ./ -perm -000’ 全部文件匹配
【比喻:完成任务后,就可以做其他事儿了】
如:-perm -061 那么就是匹配权限为 ???rw???x【或则???42??1】 的文件,至于? 就是代表这个权限可有可没有。
如:-perm -o=x 那么就是匹配权限为 ????????x【或则???????1】 的文件,至于? 就是代表这个权限可有可没有。
只要匹配位有权限就行了,其他位可以有权限,也可以没有权限。【贪婪匹配、最大限度匹配】
-perm /mode 这个和上一个比较起来,差不多,只是匹配上更贪婪一些。
【比喻:只要完成一点任务,就可以做其他事儿了】
如:-perm /061 就是匹配文件权限为 ???rw???x【或则???42??1】 中至少满足的一个就行了。即这些权限满足其中一个就行了。【如:???rw???x,????????x,????w????,……】,至少满足其中一个,也可以全满足。
如: -perm /o=rx 就是匹配文件权限为 ??????r?x【或则?????4?1】 中至少满足的一个就行了。即这些权限满足其中一个就行了。【如:??????r?x,????????x,??????r??】,至少满足其中一个,也可以全满足。
至于? 就是代表这个权限可有可没有
至少满足其中一个,也可以全满足。【极度贪婪匹配、毫无下限的匹配】
注意:如果要匹配所有文件那么请使用 find ./ -perm -000 而不是 find ./ -perm /000
-perm +mode 已过时, 使用 -perm /mode 替代
-regex pattern 正则匹配。【全路径匹配】 正则表达式可参见:Linux grep 命令
-samefile name 根据文件名称匹配具有相同 inode 的文件【匹配硬链接文件】。当 -L 生效时,同时也包含软链接匹配。
[oldboy@moban oldboy]$ ls -li total 4 658532 drwxrwxr-x 2 oldboy oldboy 4096 Aug 16 08:57 oldboydir 658534 lrwxrwxrwx 1 oldboy oldboy 10 Aug 16 08:57 oldboydir_soft_link -> oldboydir/ 658530 -rw-rw-r-- 2 oldboy oldboy 0 Aug 16 08:51 oldboyfile 658530 -rw-rw-r-- 2 oldboy oldboy 0 Aug 16 08:51 oldboyfile_hard_link 658531 lrwxrwxrwx 1 oldboy oldboy 10 Aug 16 08:52 oldboyfile_soft_link -> oldboyfile [oldboy@moban oldboy]$ find ./ -samefile oldboyfile # 硬链接匹配 ./oldboyfile ./oldboyfile_hard_link [oldboy@moban oldboy]$ find -L ./ -samefile oldboyfile # 硬链接和软链接匹配 ./oldboyfile ./oldboyfile_soft_link ./oldboyfile_hard_link-size n[cwbkMG] 文件使用 n 空间单位查找。以下后缀可以使用:
实例1:在当前目录下查找文件长度大于1 M字节的文件 命令:find . -size +1M -print 实例2:在/home/apache目录下查找文件长度恰好为100字节的文件: 命令:find /home/apache -size 100c -print 实例3:在当前目录下查找长度超过10块的文件(一块等于512字节) 命令:find . -size +10 -print
-true 总是为 true
-false 总是 false
-type c 文件类型 c 可以为
b 块文件 c 字符文件 d 目录文件 p 管道文件 f 普通文件 l 软链接文件 s socket【套接字】文件 D door 文件 (只有 Solaris 系统才有)【通常不会使用】
-uid n 文件的UID【属主ID】 为 n
-used n 文件的最近访问时间是他最近改变时间的 n 天【那一天之内】后 【n 支持 n +n -n】
[oldboy@moban oldboy]$ stat a1 File: `a1' Size: 12 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 658515 Links: 2 Access: (0151/---xr-x--x) Uid: ( 500/ oldboy) Gid: ( 500/ oldboy) Access: 2015-08-06 23:14:06.208137726 +0800 Modify: 2015-08-10 23:14:04.347131141 +0800 Change: 2015-08-17 17:29:24.766060232 +0800 [oldboy@moban oldboy]$ [oldboy@moban oldboy]$ find ./ -name 'a1' -used 11 ./a1 [oldboy@moban oldboy]$ find ./ -name 'a1' -used 10 [oldboy@moban oldboy]$ find ./ -name 'a1' -used 12 [oldboy@moban oldboy]$ find ./ -name 'a1' -used -12 ./a1 [oldboy@moban oldboy]$ find ./ -name 'a1' -used +12-user uname 根据文件的属主匹配【也可以将 uname 变为 uid】
-wholename pattern 参见 -path 。这种方案不比 -path 轻便。
[oldboy@moban oldboy]$ find ./ -wholename './d*t*' ./dir1/t1 ./dir1/t2 ./dir1/t3-writable 匹配可写的文件
-xtype c 和 -type c 一样,除非文件是软链接文件
动作
-delete 不推荐使用【很少使用】。删除文件,如果执行状态码为 0 则为true;如果失败那么 得到错误信息【递归删除】
-exec command ; 从下面的结果上看,前面有多少匹配,那么就执行该命令选项中的 command 多少次。
[oldboy@moban oldboy]$ find ./ -name 'a*' ./a2 ./a5 ./a3 ./aaa ./a1 ./a4 ./a01 [oldboy@moban oldboy]$ find ./ -name 'a*' -exec ls -l \; 共有7个重复结果
-exec command {} ; {} 和 ; 之间有空格。将前面的结果执行一次。
[oldboy@moban oldboy]$ find ./ -name 'a*' -exec ls -l {} \; # ; 在特殊字符,所以需要转义字符 \ -r--rw-r-- 1 oldboy oldboy 35 Aug 6 23:24 ./a2 -rw-rw-r-- 1 oldboy oldboy 0 Aug 14 17:00 ./a5 -rw-rw-r-- 1 oldboy oldboy 27 Aug 6 23:34 ./a3 -rw-rw-r-- 1 oldboy oldboy 46 Aug 3 21:50 ./aaa ---xr-x--x 2 oldboy oldboy 12 Aug 6 23:14 ./a1 -rw-rw-r-- 1 oldboy oldboy 0 Aug 14 13:00 ./a4 ---xr-x--x 2 oldboy oldboy 12 Aug 6 23:14 ./a01-exec command {} + 是-exec 的变异体。将前面的结果执行一次。
[oldboy@moban oldboy]$ find ./ -name 'a*' -exec ls -l {} + ---xr-x--x 2 oldboy oldboy 12 Aug 6 23:14 ./a01 ---xr-x--x 2 oldboy oldboy 12 Aug 6 23:14 ./a1 -r--rw-r-- 1 oldboy oldboy 35 Aug 6 23:24 ./a2 -rw-rw-r-- 1 oldboy oldboy 27 Aug 6 23:34 ./a3 -rw-rw-r-- 1 oldboy oldboy 0 Aug 14 13:00 ./a4 -rw-rw-r-- 1 oldboy oldboy 0 Aug 14 17:00 ./a5 -rw-rw-r-- 1 oldboy oldboy 46 Aug 3 21:50 ./aaa-fls file 总是 true,就像ls 一样,只是向一个文件输入信息。【结果像 ls -dils】。文件 file 不存在就创建后添加,存在就覆盖重新添加。
[oldboy@moban oldboy]$ find ./ -name 't*' ./dir1/t1 ./dir1/t2 ./dir1/t3 [oldboy@moban oldboy]$ find ./ -name 't*' -fls ddtest [oldboy@moban oldboy]$ cat ddtest # 第二列代表什么 暂时还不清楚 658551 0 -rw-rw-r-- 1 oldboy oldboy 0 Jul 26 09:52 ./dir1/t1 658552 0 -rw-rw-r-- 1 oldboy oldboy 0 Jul 26 09:52 ./dir1/t2 658553 0 -rw-rw-r-- 1 oldboy oldboy 0 Jul 26 09:52 ./dir1/t3-fprint file 总是true,将前面的结果,输入到 file 文件中。file 没有就创建,有就覆盖
[oldboy@moban oldboy]$ find ./ -name 'a*' ./a2 ./a5 ./a3 ./aaa ./a1 ./a4 ./a01 [oldboy@moban oldboy]$ find ./ -name 'a*' -fprint ddtest [oldboy@moban oldboy]$ cat ddtest ./a2 ./a5 ./a3 ./aaa ./a1 ./a4 ./a01-fprint0 file 总是true,结果没有换行
[oldboy@moban oldboy]$ find ./ -name 'd*' -fprint0 ddtest [oldboy@moban oldboy]$ cat ddtest ./ddtest./dir3./dass./dir1./dir2./ddd[oldboy@moban oldboy]$-fprintf file format 总是true,就像-printf,但是会想file文件写入信息,就像-fprint
-ls 总是true,结果标准输出,就像ls -dils
[oldboy@moban oldboy]$ find ./ -name 'd*' -ls 658543 4 -rw-rw-r-- 1 oldboy oldboy 43 Aug 19 23:08 ./ddtest 658547 4 drwxrwxr-x 2 oldboy oldboy 4096 Jul 26 09:52 ./dir3 658541 4 -rw-rw-r-- 1 oldboy oldboy 37 Aug 19 22:56 ./dass 658545 4 drwxrwxr-x 3 oldboy oldboy 4096 Jul 27 20:42 ./dir1 658546 4 drwxrwxr-x 2 oldboy oldboy 4096 Jul 26 09:52 ./dir2 658536 0 -rw-rw-r-- 1 oldboy oldboy 0 Aug 19 22:15 ./ddd-print 总是true,打印文件的对应全名【相对路径名+文件名】用于标准输入
[oldboy@moban oldboy]$ find ./ -name 'd*' ./ddtest ./dir2 ./dir2/ddttt ./ddd [oldboy@moban oldboy]$ find ./ -name 'd*' -print ./ddtest ./dir2 ./dir2/ddttt ./ddd-print0 总是true,就像 -print ,但是没有换行
[oldboy@moban oldboy]$ find ./ -name 'd*' -print0 ./ddtest./dir3./dass./dir1./dir2./dir2/ddttt./ddd[oldboy@moban oldboy]$-printf format 总是true,对输出信息格式化。具体请参见文档
-prune 总是true,如果文件是目录,那么就不再往目录里面查询。如果使用了 -dept 那么当前选项 -prune 无效,返回false。因为-delete 意味着-depth ,你不可能将 -prune 和 -delete 一块儿使用。
4、常用示例
示例:【来源于手册】
find /tmp -name core -type f -print | xargs /bin/rm -f 在目录 /tmp 下【包括他的子目录】查找文件名为 core 的文件并删除。
注意:如果文件名包含换行符,单引号或双引号,有空格;那么执行该操作时会发生错误,或者过滤掉前面说到的文件。
[oldboy@moban oldboy]$ ll total 4 -rw-rw-r-- 1 oldboy oldboy 0 Aug 20 19:29 aaa -rw-rw-r-- 1 oldboy oldboy 0 Aug 20 19:25 aa bb -rw-rw-r-- 1 oldboy oldboy 0 Aug 20 19:29 ab"db -rw-rw-r-- 1 oldboy oldboy 0 Aug 20 19:29 ab'rrr' [oldboy@moban oldboy]$ find ./ -name 'a*' ./ab'rrr' ./ab"db ./aaa ./aa bb [oldboy@moban oldboy]$ find ./ -name 'aa*' ./aaa ./aa bb [oldboy@moban oldboy]$ find ./ -name 'aa*' | xargs /bin/rm -f # 正常执行,但是带有空格的文件被过滤掉了 [oldboy@moban oldboy]$ ll total 4 -rw-rw-r-- 1 oldboy oldboy 0 Aug 20 19:25 aa bb -rw-rw-r-- 1 oldboy oldboy 0 Aug 20 19:29 ab"db -rw-rw-r-- 1 oldboy oldboy 0 Aug 20 19:29 ab'rrr' [oldboy@moban oldboy]$ find ./ -name 'a*' | xargs /bin/rm -f # 执行错误,打印了错误信息 quote 引号 xargs: unmatched double quote; by default quotes are special to xargs unless you use the -0 optionfind /tmp -name core -type f -print0 | xargs -0 /bin/rm -f 【推介使用】 在目录 /tmp 下【包括他的子目录】查找文件名为 core 的文件并删除。即使文件名包含换行符,单引号、双引号,空格;用这个方法也能正确处理。-name 在 -type 之前是为了避免查询的每个文件都去调用 stat(2) 命令
[oldboy@moban oldboy]$ ll total 4 -rw-rw-r-- 1 oldboy oldboy 0 Aug 20 19:25 aa bb -rw-rw-r-- 1 oldboy oldboy 0 Aug 20 19:29 ab"db -rw-rw-r-- 1 oldboy oldboy 0 Aug 20 19:29 ab'rrr' drwxrwxr-x 2 oldboy oldboy 4096 Aug 16 08:57 dir [oldboy@moban oldboy]$ find ./ -name 'a*' ./ab'rrr' ./ab"db ./aa bb [oldboy@moban oldboy]$ find ./ -name 'a*' -print0 # 没有换行 ./ab'rrr'./ab"db./aa bb [oldboy@moban oldboy]$ find ./ -name 'a*' -print0 | xargs -0 /bin/rm -f # 请记住格式 xargs -0 是数字零不是字母o 或 O [oldboy@moban oldboy]$ ll total 4 drwxrwxr-x 2 oldboy oldboy 4096 Aug 16 08:57 dirfind $HOME -mtime 0 在你的家目录下查询文件,并且匹配文件的修改时间在24小时以内的文件。
find /sbin /usr/sbin -executable \! -readable -print 在/sbin /usr/sbin 查询文件,匹配的文件可执行,但是不可读。 \! 不能……【对之后的选项取反】。
find . -perm 664 查找当前目录下, 文件权限为 rw-rw-r-- 的文件或目录【精确匹配,其他的权限不可有】
find . -perm -664 查询当前目录下,文件权限至少为 u=rw, g=rw, o=r 的文件或目录【最少权限为,其他的权限可有可无】
find . -perm /222 查询当前目录下,文件权限可有 u=w, g=w, o=w 中的一个或多个【只要有一个满足即可,其他的权限可有可无】
find . -perm /220 find . -perm /u+w,g+w find . -perm /u=w,g=w 3个都是一个意思。匹配的文件至少有 u=w,或 g=w。其他位权限任意
find . -perm -220 find . -perm -g+w,u+w 2个都是一个意思。匹配的文件必须有 u=w和 g=w 其他位的权限任意
find . -perm -444 -perm /222 ! -perm /111 find . -perm -a+r -perm /a+w ! -perm /a+x
2个是一个意思。匹配的文件必须有 u,g,o = r,至少有u,g,o = w 中的一个,都没有 u,g,o = x
5、位置和类型
[oldboy@moban oldboy]$ which find /bin/find [oldboy@moban oldboy]$ type find find is hashed (/bin/find)
6、参考文章
1、每天一个linux命令(22):find 命令的参数详解
2、linux中Find命令的使用
3、Linux中find常见用法示例
4、Linux下find 命令用法详解+实例
5、linux中强大且常用命令:find、grep