目录
1、find搜索命令
find命令是我们在Linux系统中用来进行文件搜索用的最多的命令,功能特别强大。但是我们要说的是尽量少用find命令去执行搜索任务,就算要搜索我们也应该尽量的缩小范围,也不要在服务器使用高峰期进行文件搜索,因为搜索也是很占系统资源的。这就需要我们在进行Linux文件整理的时候,尽量规范化,什么文件放在什么目录下都要有比较好的约定。
find命令几种最常用的用法
a、命令名称:find
b、英文原意:
c、命令所在路径:/bin/find
d、执行权限:所有用户
e、功能描述:进行各种花式文件搜索
f、语法:find【搜索范围】【匹配条件】
【1】、根据 文件或目录名称 搜索
find 【搜索目录】【-name或者-iname】【搜索字符】:-name和-iname的区别一个区分大小写,一个不区分大小写
1、find /etc -name init (精准搜索,名字必须为 init 才能搜索的到)
2、find /etc -iname init (精准搜索,名字必须为 init或者有字母大写也能搜索的到)
3、find /etc -name *init (模糊搜索,以 init 结尾的文件或目录名)
4、find /etc -name init??? (模糊搜索,? 表示单个字符,即搜索到 init___)
eg:find / -iname lxj-test-0.0.1-SNAPSHOT.jar(搜索jar包位置)
【2】、根据 文件大小 搜索
比如:在根目录下查找大于 100M 的文件
find / -size +204800
这里 +n 表示大于,-n 表示小于,n 表示等于
1 数据块 == 512 字节 ==0.5KB,也就是1KB等于2数据块
100MB == 102400KB==204800数据块
【3】、根据 所有者和所属组 搜索
1、在home目录下查询所属组为 root 的文件
find /home -group root
2、在home目录下查询所有者为 root 的文件
find /home -user root
【4】、根据 时间属性 搜索
find 【路径】【选项】【时间】
选项有下面三种:-amin 访问时间
-cmin 文件属性被更改
-mmin 文件内容被修改
时间:+n,-n,n分别表示超过n分钟,n分钟以内和n分钟
范例:在 /etc 目录下查找5 分钟内被修改过属性的文件和目录
find /etc -cmin -5
【5】、根据 文件类型或i节点 搜索
-type 根据文件类型查找:f表示文件,d表示目录,l表示软链接
范例:查找 /usr 目录下文件类型是目录的 find /usr -type l
-inum 根据i节点查找
范例:查找 /tmp 目录下i节点为400342的文件或目录 find /tmp -inum 400342
【6】、组合条件 搜索
这里有两个参数:
1、-a 表示两个条件同时满足(and)
2、-o 表示两个条件满足任意一个即可(or)
范例:查找/etc目录下大于80MB同时小于100MB的文件
find /etc -size +163840 -a -size -204800
2、locate搜索命令
命令格式:locate [OPTION]... PATTERN...
选项说明:
-A, --all
只显示匹配所有模式的条目
-b, --basename
只匹配文件的基本名。作用与选项 --wholename 相反
-c, --count
只输出符合匹配模式的文件的数量
-d, --database DBPATH
将默认数据库替换为 DBPATH。该选项可出现多次
-e, --existing
只打印当前存在的文件
-L, --follow
当检查文件是否存在时(如果选项 --existing 指定时),检查符号链接的目标文件(默认,相反的选项是 --nofollow)
-h, --help
显示帮助信息并退出
-i, --ignore-case
比较时忽略大小写
-l, --limit, -n LIMIT
限制成功匹配的文件数为 LIMIT
-P, --nofollow, -H
当检查文件是否存在时(如果选项 --existing 指定时),不检查符号链接的目标文件。作用与 --follow 相反
-0, --null
在输出时使用 ASCII NUL 字符分隔条目,而不是将每个条目写在单独的行上。此选项是为了与 GNU xargs(1)的 --null 选项配合使用而设计的
-S, --statistics
不搜索文件,而是显示每个数据库的统计信息
-q, --quiet
不报告关于读取和处理数据库时遇到的错误的消息
-r, --regexp REGEXP
使用正则表达式 REGEXP 进行搜索。该选项可出现多次
--regex
将所有模式解释为扩展的正则表达式
-V, --version
输出 locate 的版本和许可信息并退出
-w, --wholename
仅将整个路径名与指定的模式匹配(默认)。如果只匹配文件基本名,可使用选项 --basename
范例:
1、查找文件名为 NAME 的文件。
locate -b '\NAME'
2、查找配置文件 mlocate.db。
locate mlocate.db
3、whereis搜索命令
命令格式:whereis [OPTIONS] [-BMS DIRECTORY... -f] NAME...
选项说明
-b
只搜索二进制文件
-m
只搜索 man 手册
-s
只搜索源代码
-u
只展示有相关特殊文件(二进制程序、源代码文件、man 手册)的命令名称
-B LIST
指定二进制文件查找目录,使用空格分隔
-M LIST
指定 man 手册查找目录,使用空格分隔
-S LIST
指定源代码文件查找目录,使用空格分隔
-f
在使用 -S 、–M、-B 选项时,必须使用这个选项,用于表示目录的结束,命令名的开始
-l
输出正在使用的有效查找路径
范例:
查看命令 which 的二进制文件与帮助手册的路径。
whereis which
which: /usr/bin/which /usr/share/man/man1/which.1.gz