Linux总结(七):文本搜索(grep)和文件搜索(locate,find,which,whereis)

1.文本搜索

 grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

 格式:grep  关键字   目录

       #在目录所在文件里搜索关键字,如(abc是单个单词不用加单引号): grep abc  /etc/passwd

       #常用参数:
             -i 在搜索时忽略大小写
             -n 显示结果所在行数
             -v 输出不带关键字的行
             -Ax 在输出的时候包含结果所在行 之后的指定行数(x 代表数字)
             -Bx 在输出的时候包含结果所在行 之前的指定行数(x 代表数字)

 关于grep推荐一篇博客linux grep

2.文件搜索

 locate配合数据库查看文件位置,find根据文件的属性精确查找文件名,which查看可执行文件的位置,whereis查看文件的位置 。

  • 使用 locate 命令配合数据库查找文件、目录

                locate keyword(关键字)

                    #此命令需要预先建立数据库,默认数据库每天更新一次,我们可以用  updatedb命令手动更新
  • 使用 find 命令精确查找文件、目录
                      find 查找位置 查找参数
                   # 如:
                           find . -name “*keyword*”(关键字)
                           find / -name *.conf
                           find / -perm 777      (查找权限是 777 的文件)
                           find / -type d            (查找所有的目录)
                           find . -name “a*” -exec ls -l {} \;         (查找以 a 开头的文件,并查看他们的 ls)
                           find . -user tom (查找用户属于 tom 的文件)
                           find . -group tom (查找属组是 tom 的文件)
                           find . -ctime +2|wc -l (查找最近两天修改的文件,并统计个数)
                           find . -size 30[cwbkMG] (查找指定大小的文件)
  • 使用 which 命令查看可执行文件的位置
                    which passwd(可执行文件名称)
                         # which 是通过 PATH 环境变量到该路径内查找可执行文件,所以基本功能是查找可执行文件;
  • 使用 whereis 命令查看文件的位置
                    whereis 文件或者目录名称
                     #常用参数:
                             -b 只查找二进制文件
                             -s 只查找源文件

                    # whereis 与 locate 的查找方式一样,都是通过数据库查找



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中有多种用于查找文件和目录的指令,下面是对which、whereis、locate、find和grep指令的介绍以及示例: 1. which:用于查找可执行文件的路径。它会在环境变量$PATH指定的路径中搜索指定的命令,并返回第一个匹配到的完整路径。 示例:假设我们要查找命令ls的路径,可以使用以下命令: ``` which ls ``` 输出结果可能是:/bin/ls 2. whereis:用于查找二进制文件、源代码文件和帮助文档的路径。它会在特定的目录中搜索指定的文件,并返回相关信息。 示例:假设我们要查找命令ls的二进制文件、源代码文件和帮助文档的路径,可以使用以下命令: ``` whereis ls ``` 输出结果可能是:/bin/ls /usr/share/man/man1/ls.1.gz 3. locate:用于快速查找文件或目录。它会在系统预先建立的数据库中搜索匹配的文件或目录,并返回结果。 示例:假设我们要查找所有以.txt结尾的文件,可以使用以下命令: ``` locate *.txt ``` 输出结果可能是:/home/user/file1.txt /home/user/file2.txt /var/log/file3.txt 4. find:用于在指定目录下递归地搜索文件和目录。它可以根据不同的条件进行搜索,并返回匹配的结果。 示例:假设我们要在当前目录下查找所有以.txt结尾的文件,可以使用以下命令: ``` find . -name "*.txt" ``` 输出结果可能是:./file1.txt ./file2.txt ./dir1/file3.txt 5. grep:用于在文件搜索指定的模式。它可以根据正则表达式匹配文本,并返回匹配的行。 示例:假设我们要在文件file.txt中查找包含"hello"的行,可以使用以下命令: ``` grep "hello" file.txt ``` 输出结果可能是:This is a hello world example.

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值