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编程()

  • 相关阅读:
    LVS基于DR模式负载均衡的配置
    Linux源码安装mysql 5.6.12 (cmake编译)
    HOSt ip is not allowed to connect to this MySql server
    zoj 3229 Shoot the Bullet(无源汇上下界最大流)
    hdu 3987 Harry Potter and the Forbidden Forest 求割边最少的最小割
    poj 2391 Ombrophobic Bovines(最大流+floyd+二分)
    URAL 1430 Crime and Punishment
    hdu 2048 神、上帝以及老天爷(错排)
    hdu 3367 Pseudoforest(最大生成树)
    FOJ 1683 纪念SlingShot(矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/itrena/p/5927052.html
Copyright © 2011-2022 走看看