linux中的搜索相关命令及使用

声明:本文是本人根据前人的文章总结而成,难免有些纰漏,欢迎指正和补充


>>> 搜索命令 (搜索文件名;搜索文件中指定内容)
搜索文件名 find、locate、whereis、which


###find
find path option [-exec command {} \;]
根据option(搜索条件)对该目录递归搜索。

@@@命令中的搜索条件可以用逻辑运算符and、or、not、连接
and:逻辑与,用‘-a’表示,系统缺省选项find -name 'tmp' -xtype c -user 'inin' (三个条件)
or:逻辑或,用‘-o’表示find -name 'tmp' -o -name 'mina*'
not:逻辑非,用‘!’表示 find !-name 'tmp'

@@@option参数
-name ‘字符串’: 查找文件名,匹配所给字符串的所有文件,字串内可用通配符 *、?、[ ]。
-lname ‘字符串’:查找文件名,匹配所给字符串的所有符号连接文件,字串内可用通配符 *、?、[ ]。
-gid n:查找ID号为n的用户组的所有文件
-uid n:查找ID号为n的用户的所有文件
-group ‘字符串’:查找属于用户组名为所给字符串的所有文件
-user ‘字符串’: 查找属于用户名为所给字符串的所有文件
-empty:查找大小为0的目录或文件
-path ‘字符串’:查找路径名匹配所给字符串的所有文件,字串内可用通配符 *、?、[ ]。
-perm 权限:查找具有指定权限的文件和目录,如711,777
-size n[bckw]:查找指定文件大小的文件,n后面的字符表示单位,缺省为b
-type x:查找类型为x的文件,x为:
b 块
c 字符
d 目录文件
p 命名管道
f 普通文件
l 符号连接文件
s socket文件
-xtype x:与-type基本相同,但只查找符号连接文件

// 以时间为条件的查找
-amin n:查找n分钟以前被访问过的文件
-atime n:查找n天以前被访问过的文件
-cmin n:查找n分钟以前文件状态被修改过的文件
-ctime n:查找n天以前文件状态被修改过的文件
-mmin n:查找n分钟以前文件内容被修改过的文件
-mtime n:查找n天以前文件内容被修改过的文件
-print:将搜索结果输出到标准输出

@@@-exec选项
对搜索的结构指令指定的shell命令
{}表示命令的参数即为所找到的文件;命令的末尾必须以“ \;”结束。
例子:
查找当前目录中以main开头的文件,并显示这些文件的内容
find . -name 'main*' -exec more {} \;

### locate
工作原理:可以很快速的搜寻文件系统内是否有指定的文件。
其方法是先建立一个包括系统内所有文件名称及路径的数据库,
之后当寻找时就只需查询这个数据库,而不必实际深入文件系统之中了。

通过定时任务生成文件名相关的数据文件(一般存放在 /var/lib/mlocate/mlocate.db),
需要要定时运行updatedb更新数据库 ,以保证内容的实时性

locate '文件名' [-l num(显示行数)]
locate -r '正则表达式'

### whereis
从环境变量的路径中查找目标,速度快,范围有限。用于程序名的搜索,返回所有结果
-b 搜索二进制文件
-m 搜索man说明文件
-s 搜索源码文件

### which
在PATH变量指定的路径中搜索某个系统命令是否存在,以及执行的到底是哪个位置的命令
返回第一搜索结果

在文件/输出中查找内容
在查看一些日志文件的输出,并抽取相关内容,要用到grep、egrep、|(管道)、>(重定向)等命令。


### grep 常用参数
grep options [范本样式] [文件或目录], 若未指定文件或目录,或赋值为“”,则从标准输入设备读取数据

-c:只输出匹配行的计数
-I:不区分大小写
-n:显示匹配行及行号
-v:显示不包含匹配文本的所有行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值