需要在系统中查找某个文件或者目录的时候,就需要用到find命令。它可以遍历给定的路径之下所有层级结构,来找到需要的文件。Find命令可以做到实时查找,精确查找,它需要遍历给定的目录下所有层级,所有速度略慢。 1、命令的格式: find [OPTIONS] [路径] [条件] [处理动作] 2、命令的参数: 路径:给定具体的搜索起始路径,默认为当前目录。 查找条件:查找标准,可以根据文件名,从属关系,文件类型,大小,权限,时间等进行查找。 处理动作:查找完成后,可以指定命令对结果的操作。 3、命令的选项: 根据文件名称查找 -name :根据给定的名称查找; -iname:查找名称时不区分大小写; 根据文件的从属关系查找 -user:根据属主查找; -group:根据属组查找; -uid:根据UID查找; -gid:根据GID查找; -nouser:查找没有属主的文件; -nogroup:查找没有属组的文件; 根据文件的类型查找: -type 类型: f:普通文件; d:目录文件: l:符号链接文件; b:块设备文件; c:字符设备文件; p:管道文件; s:套接字文件; 根据文件大小查找: -size [+|-]#UNIT 单位:k,M,G 根据时间戳查找: 以‘天’为单位: -atime:访问时间 -mtime:修改时间 -ctime:改变时间 以‘分钟’为单位: -amin -mmin -cmin 根据权限查找: -perm [/|-]mode mode:精确权限匹配; /mode:任意一类用户的权限中任意一位符合条件即满足; -mode:每一类用户的权限中的每一位同时符合条件即满足; 条件组合: -a:‘与’操作,默认选项; -o:‘或’操作; -not \ !:‘非’; 4、处理动作 -print:标准输出;(默认) -ls:对查找结果执行‘ls -l’命令,输出文件的详细信息; -delete:删除查找的文件 -fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式保存至指定文件中; -ok COMMAND {} \; :对查找到的每个文件执行COMMAND命令,交互式操作; -exec COMMAND {} \; :对查找到的每个文件执行COMMAND命令; 5、其他说明 find查找到的结果,是一次性给出,并传递给后面的命令,但是有些命令不能接受过长的参数. 例如:find /etc -type f | ls -l 这样是错的。此时,可以用到xargs命令。 例如:find /etc -type f | xargs ls -l Xargs可以读入查找到信息,并且以空白符或换行符作为分辨。将查找到的信息分隔成多个参数。 6、实例操作 ①查找/home中所有的.txt文件并显示 find /home -type f -a -name “*.txt” -ls ②查找以大写字母开头的文件 find / -type f -a -name “[A-Z]*” -ls ③查找所有用户都可读写执行的文件 find / -type f -perm -007 -ls ④查找/etc目录下,所有用户都有执行权限,且其他用户有写权限的所有文件 find /etc/ -type f -a -perm -111 -a -perm -002 -ls ⑤查找/etc目录下,大于1M,且最近一周内容修改过的文件或目录 find /etc/ -size +1M -a -mtime -7 -ls ⑥查找/usr/目录下,不属于root,bin或hadoop的所有文件或目录 find /usr/ -not \( -user root -o -user bin -o -user hadoop \) -ls
|