• 004-linux命令-搜索命令find、locate、whereis、which、type、grep


    一、概述

      使用linux系统难免会忘记文件所在的位置,可以使用以下命令对系统中的文件进行搜索。

    1.1、find

      语法:find <指定目录> <指定条件> <指定动作>即:find [范围] [条件] [文件名]

      find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]

    1、find命令搜索在根目录下的所有nginx文件所在位置

    find / -name  'nginx'

      / 是搜索范围,根目录 。 缩小范围/root/ 表root目录下 等

      -name 是根据名称

      查不到,因为不是模糊查询。文件名要具体指定

    2、如果想要模糊查询,则加通配符

    通配符: *

    find / -name  'nginx*'

    匹配所有 nginx开头的

    3、通配符 ?

    一个? 表示 查找算法后 有一个字符的

    find / -name  'nginx?'

    只能匹配 nginx1,nginx2,不能多个字符,nginx34

    两个? 表示 查找算法后 有两个字符的

    4、通配符* 和 ? 可以加在关键字 算法的任意位置

    5、通配符 [ ]

    表示有 [ ] 内的任意一个字符 都能查找出来

    find / -name  'ngi[ng]x'

    匹配nginx、ngigx

    6、linux是区分大小写的,如果文件名是小写,如果搜索是写成大写的就查找不到了

    如果不区分大小写只需在name前加个 i

    find / -iname  'nginx'

    不区分大小写

    7、根据用户-user

      根据文件名-name查找

      查找root 用户目录下 所有文件

    find / -user root

    8、-size  根据文件大小查找

    命令 [root@localhost ~]# find /root/ -size 2k

    2k 表示1~2k

    1k 表示 0~1k

    +2k 表示大于2k

    -2k表示小于2k

    命令 [root@localhost ~]# find /root/ -size +10k –a –size -20k

    表示查找root目录下 大于10k并且小于20k 的文件

    -a 表示 and与

    -o 表示 or或

    9、-inum  根据i节点查找

    [root@localhost ~]# ll -i   显示所有i节点的文件

    ll -i
    1579964 -rw-r--r--  1 root  root          0 2月  11 09:18 test.txt

    查找

    find /export/servers/ -inum 1579964
    # /export/servers/test.txt

    10、根据时间查找

    -atime  +n 表示访问或执行时间大于n天的文件

    -ctime  +n 表示写入更改时间大于n 天的文件

    -mtime  +n  表示写入时间大于n天的文件,用的最多

            -n 就表示 小于n 天

    1.2、locate

      比find命令快。因为它查询的是数据库(/var/lib/locatedb),数据库包含本地所有的文件信息。搜索速度快,但不适合精确查找。一般不用。

      如上例:

    locate nginx

    1.3、whereis

      使用”whereis“命令可以搜索linux系统中的所有可执行文件即二进制文件

      如搜搜grep命令

    whereis grep

    1.4、which

      使用which命令查看系统命令是否存在,并返回系统命令所在的位置

      使用which命令查看grep命令是否存在以及存在的目录的命令为:

    which grep

    1.5、type

      使用type命令查看系统中的某个命令是否为系统自带的命令

      使用type命令查看cd命令是否为系统自带的命令;查看grep 是否为系统自带的命令。

    type cd
    type grep

    1.6、grep查文件内部

    Grep [要查找的字符串] [路径]

    查找 目录中配置文件中的 字符串

    grep test /export/servers
    grep: /export/servers: 是一个目录

    grep test /export/servers/test.txt 
    test is test s

    选项

    -i 忽略大小写

    -v 排除指定字符串

  • 相关阅读:
    菜鸟也为Git疯狂
    C#实现简单的栈和队列
    Entity Framework模型在领域驱动设计界定上下文中的应用
    SQL 关于使用CTE
    《高效程序员的45个习惯》读书笔记
    开源.NET下的XML数据库介绍及入门
    openkm开发环境搭建过程
    ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
    《Clean Code》Learning
    网络抓包工具 Network Monitor使用方法 Fiddler使用方法
  • 原文地址:https://www.cnblogs.com/bjlhx/p/10550312.html
Copyright © 2020-2023  润新知