find命令简介:
shell
find命令:在目录成次结构中实时、精确查找文件,查找时对文件系统进行遍历,可以进行递归查找,查找速度比较慢。find用于安全
文件查找时根据指定的条件进行精确找找,会将查找结果中符合指定条件的文件所有列出来。它的使用权限是全部用户。ide
grep与find不一样,grep用文本搜索,其对象是文本流工具
find命令使用格式:oop
find [options] [path...] [conditions] [actions]post
path:默认为当前目录
测试
conditions:默认为查找指定路径下的全部文件
ui
actions:默认为显示
spa
find命令的用法:命令行
options:选项
-xdev:不在其它文件系统的目录中搜索。
-mindepth <n>:搜索文件时至少要深刻到指定目录的第 n 层子目录。
-follow:若是符号连接到目录,则跟随符号连接进入。默认状况下,find不跟随连接。
-daystart:当使用与事件相关的测试时,将当天的开始时间做为时间戳,而不是默认值(从当前时间倒退24个小时)仅做用于命令行出现的测试。
conditions:查找条件
-name "filename":按文件名称查找,支持文件名通配符。
例:在当前目录下查找文件名以L或l开头的文件
-iname "filename":按文件名查找,忽略大小写字母,支持文件名通配符。
例:在当前目录下查找文件名以L或l开头的文件
-user UserName:按文件所属的属主查找
-user GroupName:按文件所属的属组查找
例:查找当前目录下文件所属的属主为hadoop的全部文件
-uid UID:根据文件所属的UID查找文件
n: 查找文件所属的UID为n的全部文件
+n:查找文件所属的UID大于n的全部文件
+n:查找文件所属的UID小于大于n的全部文件
-gid GID:根据用的GID查找文件
n: 查找文件所属的GUID为n的全部文件
+n:查找文件所属的GUID大于n的全部文件
+n:查找文件所属的GID小于大于n的全部文件
例:查找当前目录下文文件所属组的gid为123的全部文件
例:+n:查找文件所属的UID大于1000的全部文件
例:查找文件所属的UID小于1000的全部文件
-empty:查找全部为空的文件
例:查找全部的空文件
-nouser:查找全部没有属主的文件
-nogroup:查找全部没有属组的文件
例:当前目录下查找全部没有属主的文件
-type:根据文件类型进行查找
常见的文件类型有:
f:普通文件
d:目录文件
c:字符设备文件
l:符号连接文件
b:块设备文件
p:管道文件
s:套接字文件
例: 查找/var/spool/postfix/public/目录下的全部套接字文件
-size:根据用户指定文件的大小进行查找(经常使用单位K|M|G)
n:查找指定条件下大小为n的文件
例:在当前目录下查找大小为1M的文件
+n:查找指定条件下文件大于n的文件
例:在当前目录下查找大于10k的文件
-n:查找指定条件下文件小于n的文件
例:在当前目录下查找小于4k的文件
根据时间戳查找文件:
-atime:单位为天
+n:在指定条件下查找n+1天前被访问过的文件
-n:在指定条件下查找n天以内被访问过的文件
n:查找从当前时间算起前n天之内被访问过的文件
-ctime:单位为天
+n:在指定条件下查找n+1天前被改变的文件
-n:在指定条件下查找n天以内被改变的文件
n:查找从当前时间算起前n天之内被改变的文件
-mtime:单位为天
+n:在指定条件下查找n+1天前修改过的文件
-n:在指定条件下查找n天以内被修改过的文件
n:查找从当前时间算起前n天之内修改过的文件
-amin:单位为分钟
+n:在指定条件下查找n+1分钟前被访问过的文件
-n:在指定条件下查找n分钟内被访问过的文件
n:查找从当前时间算起前n分钟被访问过的文件
-cmin:单位为分钟
+n:在指定条件下查找n+1分钟前被改变的文件
-n:在指定条件下查找n分钟以内被改变的文件
n:查找从当前时间算起前n分钟之内被改变的文件
-mmine:单位为分钟
+n:在指定条件下查找n+1分钟前修改过的文件
-n:在指定条件下查找n分钟以内被修改过的文件
n:查找从当前时间算起前n分钟之内修改过的文件
例:在/var目录下查找9天以前被访问过的文件
例:在/var目录下查找20分钟之内被访问过的文件和3分钟之内被访问过的文件
例:在/var目录下查找前3天被修改过的文件
-perm:在指定条件下根据文件的权限进行查找
MODE:查找时按精确的文件的权限进行匹配
例:在/tmp目录下查找权限为641的全部文件
-MODE:在指定条件下只要文件的属主、属主或其余用户的任意权限与对应指定权限中的任意一位匹配就可以被查
找到。一般用于查找文件的特定权限位是否存在。
例:在/tmp/mtest/目录下其余用户具备可执行权限的文件
+MODE:在指定条件下只要文件中的权限包含指定的权限就会被查找到。
例:在/tmp/mtest目录下查找属组具备读和执行权限,其余用户具备执行权限的全部文件。
actions:
-print:在指定条件下以将匹配的文档输出到标准输出(默认find执行该动做)
-ls:在指定条件下以长格式输出文件的信息
-exec command { } \;:在指定条件下以对匹配的文档执行所给的shell命令。形式为:注意{ }和\;之间的空格
-ok:和-exec做用相同。只可是以种更安全的模式执行该参数所给的shell命令。在执行每一个命令以前,都会给出提示,
让用户肯定是否执行
例:在/tmp/mtest目录下查找属组具备读和执行权限,其余用户具备执行权限的全部文件,并以长格式显示。
|xargs commond: xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小
的块,以方便过滤器和命令进行处理。xargs从管道从文件的输出中读取数据,它可以捕获一个命令的输出,而后传递给另一个命令。
例:在/tmp/目录下查找空文件并将其删除.