Centos文件搜索locate find grep

阅读更多
1. locate命令

(1) locate命令
    locate 文件名

(2) locate命令所搜索的后台数据库/var/lib/mlocate,在后台数据库中按文件名搜索,搜索速度更快,缺点是只能按文件名搜索。更新数据库updatedb。


(3) 用yum命令远程安装locate,之后更新数据库updatedb。
    [root@localhost ~]# yum -y install mlocate
    [root@localhost ~]# updatedb

(4) 使用locate命令
    [root@localhost ~]# locate javabook 
    
    [root@localhost ~]# locate mlocate
    [root@localhost ~]# cat /etc/updatedb.conf
    这里可以修改配置
    PRUNE_BIND_MOUNTS="yes"开启搜索限制
    PRUNEFS = 搜索时,不搜索的文件系统
    PRUNENAMES = 搜索时,不搜索的文件类型
    PRUNEPATHS = 搜索时,不搜索的路径


2. find命令

(1) find命令
    find [搜索范围] [搜索条件]
        模糊查询,使用通配符
            * 匹配任意内容
            ? 匹配任意一个字符
            [] 匹配任意一个中括号的字符
    find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。

(2) find使用

全名匹配搜索
    [root@localhost ~]# find / -name javabook

任意内容匹配模糊查询
    [root@localhost ~]# find / -name "java*"
    
匹配任意一个字符查询
    [root@localhost ~]# find / -name "java?"
    [root@localhost ~]# find / -name "java????"
    
    [root@localhost ~]# mkdir javacook
匹配任意一个中括号的字符
    [root@localhost ~]# find / -name "java[bc]ook"
    
区分大小写,无法查询到结果
    [root@localhost ~]# find /root -name javabooK
忽略大小写,可以查询到javabook
    [root@localhost ~]# find /root -iname javabooK

查询root用户所有文件
    [root@localhost ~]# find /root -user root
查找没有所有者的文件
    [root@localhost ~]# find /root -nouser

    -10 10天内修改的文件
    10 10天当前修改的文件
    +10 10天前修改的文件
    atime 文件访问时间
    ctime 改变文件属性
    mtime 修改文件内容
查找10天前修改的文件
    [root@localhost ~]# find /var/log/ -mtime +10
        
    -2k 小于2KB的文件
    2k 等于2KB的文件
    +2k 大于2KB的文件
查找文件大小是1到2KB的文件(进一法)
    [root@localhost ~]# find /root -size 2k
    
    -a and 逻辑与 ,两个条件都满足
    -o or 逻辑或,两个条件满足一个即可
查找/root/目录下,大于1KB并且小于2KB的文件
    [root@localhost ~]# find /root -size +1k -a -size -2k
    
查找i节点是50771909的文件
    [root@localhost ~]# find /root -inum 50771909
    
查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息;
    [root@localhost ~]# find /etc -size +20k -a -size -50k -exec ls -lh{} \ ;


3. grep命令,字符串搜索

(1) grep命令
    grep [选项] 字符串 文件名
        选项:
            -i 忽略大小写
            -v 排除指定字符串

(2) 不使用grep命令

查找.cfg文件
    [root@localhost ~]# locate .cfg
编辑文件
    [root@localhost ~]# vi /etc/grub2.cfg
vi下查找内容
    命令行输入:/save
    n是下一个,shift + n是上一个
退出
    命令行输入:q,回车
    
(3) 使用grep命令

查找含有字符串的内容
    [root@localhost ~]# grep save /etc/grub2.cfg
    
查找不含有字符串的内容
    [root@localhost ~]# grep -v save /etc/grub2.cfg


4. 命令搜索命令whereis与which

(1) whereis命令
    whereis 命令名
        选项:
            -b : 只查找可执行文件位置
            -m : 只查找帮助文件
    搜索命令所在路径及帮助文档所在位置
    
(2) 使用whereis
    
查找ls命令
    [root@localhost ~]# whereis ls
    ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
查找ls可执行命令
    [root@localhost ~]# whereis -b ls
    ls: /usr/bin/ls
查找ls帮助命令    
    [root@localhost ~]# whereis -m ls
    ls: /usr/share/man/man1/ls.1.gz

(3) which命令
    which 文件名
    搜索命令所在路径及帮助文档所在位置
    
(4) 使用which命令

搜索ls命令所在路径及别名
    [root@localhost ~]# which ls
    alias ls='ls --color=auto'
    /usr/bin/ls

你可能感兴趣的:(CentOS)