Linux学习(二)文件搜索命令

1.locate命令

格式:locate 文件名

在后台数据库中按照文件名搜索,搜索速度更快。后台数据库默认路径是==/var/lib/mlocate==(根据Linux版本不一致,路径可能不一样,可以用locate locate命令查找)。
但是数据库默认是一天更新一次,所以新建的文件用locate命令会找不到,此时可以执行updatedb命令,更新数据库,就可以找到了。
在这里插入图片描述
但有时候即使进行了updatedb,是因为在/etc/updatedb.conf配置文件里,默认不搜索某个目录下面的文件。
/etc/updatedb.conf配置文件:

  • PRUNE_BIND_MOUNTS =“yes” -->开启搜索限制
  • PRUNEFS                                   -->搜索时,不搜索的文件系统
  • PRUNENAMES                           -->搜索时,不搜索的文件类型
  • PRUNEPATHS                             -->搜索时,不搜索的路径
    在这里插入图片描述
2.命令搜索命令whereis和which

格式:whereis   [选项]   命令名

搜索命令所在路径以及帮助文档所在位置。

选项: -b 只查找命令所在路径
            -m 只查找帮助文档
注意:cd 命令是找不到的,因为它是shell自带的命令
在这里插入图片描述
which 命令名:
搜索命令所在路径以及别名。
在这里插入图片描述

3.PATH环境变量

定义的是系统搜索命令的路径,类似Windows环境变量,通过PATH路径,可以不打绝对路径执行命令。
在这里插入图片描述

4.find命令

find   [搜索范围]   [搜索条件]
find / -name install.log          在根目录下按照名字搜索install.log
要避免大范围搜索,会非常耗费系统资源。find是在特定目录下搜索符合条件的文件名,搜索出的文件名要跟搜索的文件名完全一致。
如果需要匹配,使用通配符进行匹配,通配符是完全匹配。
Linux中的通配符:

  • * 匹配任意内容
  • ? 匹配任意一个字符
  • [] 匹配任意一个中括号内的字符
    在这里插入图片描述
    find的其他命令:
find /root -iname install.log    不区分大小写查找
find /root -user root            按照所有者搜索
find /root -nouser               查找没有所有者的文件,一般用来手动清除垃圾文件
但是有两种情况有可能没有所有者,要谨慎删除:
1.由内核产生的文件,有可能没有所有者,比如在proc或者sys目录下面的。
2.外来文件也有可能没有所有者,例如U盘拷贝进来的文件。

按照修改时间查找:

find  /var/log  -mtime  +10 查找10天前修改的文件
-10 十天内修改的文件
10 十天当天修改的文件
+10 十天前修改的文件
选项:atime 文件访问时间
           ctime 改变文件属性的时间
           mtime 修改文件内容的时间

按照字节大小查找:

find  .  -size  25k
k字节小写,M字节大写(25M)
-25k 小于25k的文件
25k 等于25k的文件
+25k 大于25k的文件

根据i节点查找文件:

find   .    -inum    265845

逻辑与和逻辑或:

find /etc -size +20k -a -size -50k
查找/etc目录下,大于20KB并且小于50KB的文件
-a and 逻辑与,两个条件都满足
-0 or 逻辑或,两个条件满足一个即可

对搜索结果进行操作:

find /etc -size +20k -a -size -50k -exec ls -lh {} ;
查找/etc目录下,大于20KB并且小于50KB的文件,并显示出详细信息
-exec/-ok 命令 {} ;对搜索结果进行操作

在这里插入图片描述

5.grep命令

grep    [选项]    字符串     文件名
在文件中匹配符合条件的字符串
选项:-i  忽略大小写
           -v  排除指定字符串
在这里插入图片描述
find和grep的区别:
find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值