文件搜索和查找工具:
安装文件名或文件的属性来查找并定位文件的路径;
locate:模糊查找工具;
基于专用的数据库进行查找,但前提是数据库必须事先存在,而且需要定期更新;
查找速度非常快,但是查找精度十分有限,且仅限于数据库中包含的内容;
可以在特定的情况下,实施手动更新数据库,需要使用updatedb命令即可;
/var/lib/mlocate/mlocate.db:locate查找的数据库文件;
find:精确查找工具;
查找精度非常高,但速度比较慢;
在指定的位置通过文件名或其他文件的关键属性对文件进行遍历扫描;
注意:不建议对根目录进行find操作;
实时查找;
限制:使用find命令仅能完成当前用户有读和执行权限的目录的扫描查找;
find命令:
find - search for files in a directory hierarchy
find [path...] [expression]
path:查找路径;
默认为当前工作目录,也可以指定具体的查找目录的路径;
expression:
OPTIONS:
TESTS:查找条件;
实施本次查找的标准;既可以指定文件名,又可以指定诸如:文件大小,文件类型,文件权限和时间戳等;
ACTIONS:处理动作;
对于查找到的符合条件的文件进行某种指定的处理操作;默认值为将查找结果输出到标准输出;
查找条件:
根据文件名查找:
-name pattern:文件名支持使用Globbing;(*,?,[],[^])
[root@localhost ~]# find /etc/pass*
/etc/passwd
/etc/passwd-
-iname pattern:忽略文件名中字母大小写的区别,而进行查找;支持使用Globbing;
-samefile name:根据指定的文件的文件名,查找其它硬链接文件的路径;
根据文件的inode号查找:
-inum n:
-links n:查找硬连接数为"n"的所有文件;
-regex pattern:
-iregex pattern:
根据文件的所有权进行查找:
-user uname
-uid UID
就是根据用户名和/或用户ID,查找属主为这个用户账户的所有文件;
-group gname
-gid GID
就是根据组名和/或组ID,查找属组为这个组账户的所有文件;
-nogroup:在文件的所有权的权限位上,没有属组名称仅显示属组ID的文件;
-nouser:在文件的所有权的权限位上,没有属主名称仅显示属主ID的文件;
根据文件的类型:
-type c:
c表示文件类型的单字符描述符,其中包括:
b:块设备
c:字符设备
d:目录
f:普通文件
l:符号链接
p:管道
s:套接字
-xtype c:
符号链接文件的查找结果需要其他选择的配合才能找到,否则查找的是被链接的原文件;
根据时间戳进行查找:
以天为时间单位进行查找:
-atime [+|-]n:根据访问时间戳进行查找
-ctime [+|-]n:根据改变时间戳进行查找
-mtime [+|-]n:根据修改时间戳进行查找