Linux之搜索查找命令

一、find命令

find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。

find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。

语法格式:find [参数] [路径] [查找和搜索范围]

常用参数

参数作用
-name按名称查找
-size按大小查找
-user按属性查找
-type按类型查找
-iname忽略大小写

参考实例

使用-name参数查看/etc目录下面所有的.conf结尾的配置文件:

[root ~]# find /etc -name "*.conf

使用-size参数查看/etc目录下面大于1M的文件:

[root ~]# find /etc -size +1M

列出当前目录及子目录下所有文件和文件夹:

[root ~]# find .

在/var/log目录下忽略大小写查找以.log结尾的文件名:

[root ~]# find /var/log -iname "*.log"

二、locate命令

locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,值得注意的是:版本不同,会有所不同。有的版本位置是 /var/lib/mlocate/mlocatedb ,还有的是/var/lib/slocate/slocate.db ,这个数据库中含有本地所有文件信息。

Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

**语法格式:**locate [参数] [文件]

参考实例

搜索/etc目录下所有以sh开头的文件:

[root ~]# locate /etc/sh
 /etc/shadow
 /etc/shadow-
 /etc/shells

搜索/etc目录下以k开头的文件:

[root ~]# locate /etc/k
 /etc/kdump.conf
 /etc/kernel
 /etc/krb5.conf
 /etc/krb5.conf.d
 /etc/ksmtuned.conf
 /etc/kernel/postinst.d
 /etc/kernel/postinst.d/51-dracut-rescue-postinst.sh

查找和pwd相关的所有文件:

[root ~]# locate pwd
 /boot/extlinux/pwd.c32
 /etc/.pwd.lock
 /usr/bin/pwd
 /usr/bin/pwdx
 /usr/include/pwd.h

三、grep命令和 管道符号 |

grep 过滤查找 ,管道符“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

基本语法

grep [选项] 查找内容 源文件

常用选项

参数作用
-n显示匹配行及行号
-i忽略字母大小写

实例:

请在hello.txt文件中,查找"yes"所在行,并且显示行号(不区分大小写)

cat hello.txt | grep -ni yes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值