一,语法和参数:
1.语法:
find [PATH] [expression]
2.[PATH]:
搜索的根路径,find会沿着这个根通过计算expression向下搜索。如果没有指定PATH,那么默认是current。
同时,加绝对路径,则搜索结果将为绝对路径(通常用于某些特殊需要)
可以加多个PATH。
3.[expression]: [expression]=[Option]+[Action]
1)Options:
很多关于数字n参与的选项,n的意义如下:
+n : 大于n;
-n : 小于n;
n : 等于n。
这些用到n的选项有:(N可以代表上述三种n)
-atime N , -ctime N :分别为更改(access/change)天数。
-links N :链接数(hard link)。
-uid N , -gid N :用户ID和组ID
-size N[ck] :文件大小(c,bytes;k,Kb;)默认是block=0.5k=512b。
其它:
-lname:soft link。
-name :接查询目标的名字。
-newer file : file是存在的文件,newer指比这个file更新的文件。
-user,-group:用户,组的名字。
-nouser, -nogroup: 文件拥有者或拥有组不存在与/etc/passwd 或/etc/group中。
-perm N:文件权限。用类似774、0700等数字表示模式。+、-、=同N。
-type:文件类型(f,正规文件;b、c,设备文件;d,目录;l,链接文件;s,套接字;P,FIFO文件)
2)Action :
-exec 命令表达式:
所有搜索到的正确结果(通过option计算值为真)将作为命令表达式的变量值直到遇到“;”。 而“;”需要进行“\”转义。即,“\;"为 整个变量值的结束标志。同时,用”{}“代表这些变量值交付给命令进行执行。
具体例子:find /usrbin -perm +4000 -exec ls -l {} \;
即搜索/usr/bin目录下有SUID权限的文件并详细列出。
二,关于-and 和 -or
find命令不同于linux shell 语法,所以使用时需要注意。以上仅列出比较常用的相关东西,还有很多参数、选项、类型、方法可以参考使用。
-and 和-or 就是比较好用的两个额外的参数选项。用来补充条件。
例如: -and 、-or 特殊逻辑选项的使用。
-and :类似”且“。比如 :
find /home -size +50k -and -size -100k :大于50M且小于100M的文件。
-or :类似”或“。比如:
find /home -user t1 -or -user t2 : 搜索属于t1或者是t2用户的文件。
rnmo 于 2009-11-10 00:06:00发表:
噢
一米短绳 于 2009-11-09 14:32:39发表:
还有个 -fls 指定输出到某个文件
关于 -ls 和 -fls 都是包括了inode等内容
如果是在800*600标准终端环境下,如果没有特殊要求,单单用-ls会使输出变的错乱,所以一般非特殊情况不会使用。因此没有贴进。
O(∩_∩)O
acrofox 于 2009-11-09 12:10:36发表:
find /usrbin -perm +4000 -exec ls -l {} \;
这条跟 find /usrbin -perm +4000 -ls 的输出差不多,后者更简略些。