find是实时查找工具,通过遍历指定路径完成文件查找
1.工作特点:
查找速度略慢
精确查找
实时查找
只搜索用户具备读取执行权限的目录
这些特点都是相对于另一种基于数据库的查找工具locate而言的,而find是直接从磁盘搜索的
2.语法
find [option]…[查找路径][查找条件][处理动作]
查找路径:指定具体目标路径;默认为当前目录
查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作;默认输出至屏幕
说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。
3.常用的命令参数有:
-name:按照文件名查找文件。
-perm:按照文件权限来查找文件。
-prune:使用这一选项可以使 find 命令不在当前指定的目录中查找,如果同时使用了 -depth 选项,那么 -prune 选项将无效。
-user:按照文件属主来查找文件。
-group:按照文件所属的组来查找文件。
-mtime -n +n:按照文件的更改时间来查找文件, -n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。
-nogroup:查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser:查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件。
-type:查找某一类型的文件,诸如:
b:块设备文件。
d:目录。
c:字符设备文件。
p:管道文件。
l:符号链接文件。
f:普通文件。
s:socket文件
-size n[cwbkMG]:文件大小为 n,单位为后缀决定的数据块。其中后缀为:
b:代表 512 位元组的区块(默认单位为 b)
c:表示字节数
k:表示KB (1024字节)
w:字 (2字节)
M:兆字节(1024KB)
G:千兆字节 (1024MB)
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-maxdepth:查找最大目录层数 如 1,即只查找一层目录。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件 /etc/fstab 中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统 mount 点。
-follow:如果 find 命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用 cpio 命令,将这些文件备份到磁带设备中。
5.find逻辑运算符
符号 作用
-a 与 and
-o 或 or
! 非 -not
6.exec语法形式:
-exec (command) {} ;
-exec 后面跟随一个命令,后面的 {} 表示前面查询的结果文件,末尾为 ; 且一定要留有一个空格
在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。