zoukankan      html  css  js  c++  java
  • Linux常用命令(第二版) --文件搜索命令

    文件搜索命令

    1which /usr/bin/which #显示系统命令所在目录,绝对目录,不能查找文件

    格式:which [系统命令]

    e.g. which ls

    附-whereis:也可以查找到命令的绝对路径

    whereis不同,which会列出这个命令的别名记录,whereis会显示出这个命令的帮助文档所在位置


    2find /usr/bin/find #查找文件或目录,任何文件皆可,如图片,压缩包等

    语法:find [搜索路径] [搜索选项] filename

    a find /etc -name 文件名 #-name 最常见的选项

    find /etc -name init // 在目录/etc中查找文件init文件

    注意:

    1-尽量缩小查找范围,不要在根目录下查找,不然:1、查找速度非常慢;2、占用大量系统资源.

    2-占用系统资源越少越好,而且尽量在服务器压力较小时用find进行查找.

    3-find .. -name 查找结果与Windows不同,如:Windows会把所有包含init关键词的文件全都列出来而Linux则只会匹配init关键词

    4-使用通配符:

    *:用于匹配任意字符

    find /etc -name init* #查找所有以init开头的文件

    find /etc -name *init*  #init左右都没有空格,用于查找所有包含init关键词的文件

    ?:用于匹配单个字符

    find /etc -name init??? #这个文件会有七个字符。

    find /etc -name ?init?? 

    bfind /etc -size 文件大小 

    #他是以数据块为单位的!512字节 = 0.5KB, 1K = 2Blocks

    100M=blocks

    100M = 102400K = 102400*2blocks

    E.g

    find /etc -size +204800  #在/etc下查找大于80MB大于100MB的文件

    find /etc -size -204800 #在/etc下查找大于80MB小于100MB的文件

    find /etc -size 204800 #在/etc下查找等于100MB的文件,不常用!

    cfind /etc -user username 查找属于username的文件

    find /home/xiaofang/Programme/Data_Structure/ -user xiaofang 


    d)通过时间值查找:

    1、以天为单位: ctimeatimemtime

    2、以分钟为单位: cminaminmmin #更为常用

    c-change 改变:表示文件的属性被修改过,比如:所有者,所属组,权限

    a-access 访问:文件被浏览过

    m-modify 修改:文件内容被修改过

    -多长时间之内,+超过多少时间

    E.g.

    find /etc -mtime -1

    find /etc -amin -60

    find /home -cmin -120

    efind /etc -type 文件类型 #根据文件类型查找

    f 二进制文件

    l 软链接文件

    d 目录

    E.g.

    find /etc -type f

    find /etc -type l

    f-inum #根据i节点进行查找

    E.g.

    touch -- -abc #删除:rm -- -abc

    touch “a b” #删除:rm “a b”

    find . -inum 159341

    find . -inum 159341 -exec rm -f {} ; #找到i节点为159341的文件,并删除它

    附-find连接符:

    1、 -aand 逻辑与

    -oor 逻辑或

    E.g.

    find /etc -size +163840 -a -size 204800 #查找>80M,<100M的文件

    find /etc -name init* -a -type f #查找名为init并且为二进制的文件,并不包含目录

    2find ….. -exec 命令 {} ; #固定格式,只能这样来写

    {} :find的查询结果

       :转义符-使得符号命令使用本身的含义

    ; :语句结束

    e.g.

    find /etc -name inittab -exec ls -l {} ; 

    #在/etc下查找inittab文件并显示其详细信息

    find /home -user sax -exec rm -rf {} ;

    #删除用户sax所有的文件

    find /home -user sax -ok rm -rf {} ; #-ok连接符

    #删除用户sax所有的文件,他会提示你是否确认

    find /etc -name init* -ok rm -rf {} ;

    3、locate[list file in databases]: /usr/bin/locate

    说明:

    #是Linux所特有的命令,寻找文件或目录,最好用于快速定位系统命令配置文件

    #虽然搜索速度很快,但有时候会找不到

    #locate是在文件数据库中查找的,所以速度会很快

    #但是如果数据库没有包含这个文件的话,他就会找不到;

    格式:locate [搜索关键字

    配合:updatedb [update a database for mlocate]: /usr/bin/updatedb

    #建立整个系统目录文件的数据库 

    注意:其执行权限为:root!!!

    4grep: /bin/grep #在文件中搜寻字串匹配的行并输出

    格式: grep [指定字串] [源文件

    E.g. grep ftp /etc/services 

    附:grep功能特别强大,支持正则表达式,她的更加具体的介绍请参考我的另一篇博文:

    四天精通Shell编程()

  • 相关阅读:
    Halcon学习(车牌识别)
    Keil新建STM32工程(LED灯)
    Keil新建STM32工程(LED灯)
    Keil STM32F4xx_DFP.1.0.8.pack下载链接
    android 如何单独编译 img及作用
    Linux绑定硬件IRQ到指定SOC的CPU核
    sysrq: SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f)
    内核线程同步之completion
    kmalloc,vmalloc , malloc
    ARMv8 与 Linux的新手笔记(转载)
  • 原文地址:https://www.cnblogs.com/itrena/p/5927052.html
Copyright © 2011-2022 走看看