zoukankan      html  css  js  c++  java
  • linux:指令与档案的搜索

    linux下的五种搜索方法(参考自鸟哥linux私房菜基础篇):

    一、find 功能很强大,直接搜寻整个硬碟的(速度不是很快,如果系统硬碟较旧的话)----特色:find后面可以接多个目录搜索,它本身就会搜索次目录

      主要语法:find [path(路径)] [option(选项)] [action]

      分类(1):档案的主要三大时间查找法(mtime【档案内容修改时间】、atime【档案取用读取时间cat,head,nl等】、ctime【档案的状态时间,权限,属性】、newer(查找比某个档案更新的档案))

        语法:find [path(路径)] [-mtime|-ctime|atime] [ |+|-] n(数字)

           find [path(路径)] [-newer] [file(以该文件为参照,找出比该档案还新的档案)]

      

      

      分类(2):以使用者或群组相关的参数查找法(用户id、组id(id username获得这些id)、用户名称、组名称、nouser(不在/etc/passwd中的人)、nogroup(不在/etc/group的组))

        语法:find [path(路径)] [-uid|-gid|-user|-group] [uid|gid|username|group(通过【id zengguowang】获取uid,gid)]

           find [path(路径)] [-nouser|-nogroup(查找不在/etc/passwd的用户的文件,不在/etc/group的群组的文件)]

      

      分类(3):与档案权限和名称有关的参数查找法

      语法:find [path(路径)] [-name|-size|-type] [filename|(+|-)50(c:bytes|k:1024bytes)|f、b、c、l、d、s、p]

         find [path(路径)] [-perm] [4755|-4755|/4755]

      

      分类(4):find查找额外可以进行的操作(比如:查询到一个ASCII的纯文字文档,查询出来的同时使用cat -n显示内容)

        语法:find [path(路径)] [-mtime|-uid|-name] [参数] [-exec] [ls -l(额外的指令cat -n)] [{} ;]

        比如:find / -perm /7000 -exec ls -l {} ;

        

      注意:

        要查找的的档案具有特殊属性的时候,比如suid,拥有者,档案的大小,使用locate是达不到搜索的

        find的查找还可以使用【万用字元"*"

        【!】是不等于(反向选择)的意思;比如:找size大于50k不是root的档案 find / -size +50k ! -user root (find / ! - user root)

        【-a】是and的意思;比如找大于50k小于60k大小的档案 find / -size +50k -a -szie -60k

        【-o】是or的意思;比如我要找大于1500k以及容量等于0的档案 find / -size +1500k -o -size 0

    二、which(指令搜索):是根据[PATH]这个环境变量规划的路径去搜寻执行档的档名的(搜寻不到history因为它是bash shell内建的指令,使用type history可以搜寻到)

      

      档案搜索:

      注意:通常find不是很常用,因为它速度慢,而且很操硬碟,一般先使用whereis和locate来检查,如果找不到再使用find来查找,为什么呢?

      答:因为whereis只找系统中某些特定的目录下的档案,locate则是已资料库来查找档名的,两者速度相当快,并没有实际的搜寻硬碟内的档案系统状态,比较省时间

    三、whereis(locate):查询系统中某些特定的目录

      

    四、locate档案搜索(updatedb)资料库/var/lib/mlocate/:查询系统预设的资料库(centos7.X的资料库预设是每天更新一次,当你新建的档案在资料库还没用更新之前去查询,会提示找不到,必须等资料库更新了才行【使用updatedb命令去更新资料库,updatedb会去读取 /etc/updatedb.conf的设定档的设定,然后去硬碟里面搜寻档名的动作,然后就更新整个资料库档案,因为updatedb回去搜寻硬碟,所以很慢,执行时,要等待几分钟】)

      

      updatedb:根據 /etc/updatedb.conf 的設定去搜尋系統硬碟內的檔名,並更新 /var/lib/mlocate 內的資料庫檔案;

      locate:依據 /var/lib/mlocate 內的資料庫記載,找出使用者輸入的關鍵字檔名。

    五、type 用来区分是shell自带的还是由shell之外的二进制文件独立提供了;如果一个命令是外部命令,那么使用-P(大写的P)参数,会显示该命令的路径,相当于which命令

      例如:type history(shell自带的)

       

      type -P ls(shell之外的二进制文件独立提供的一个命令)

      

      

     内容参考自鸟哥linux私房菜,传送门:http://linux.vbird.org/;

  • 相关阅读:
    Swagger使用总结
    idear常用快捷键
    Liunx下安装MongoDB
    python面向对象的特点,类定义等,私有属性、公有属性、成员属性
    Python,subprocess模块(补充)
    对称加密和非对称加密概述
    Python关于导入模块的一些感想:
    Python学习第二阶段Day2,模块subprocess、 logging、re
    Python学习第二阶段Day2(json/pickle)、 shelve、xml、PyYAML、configparser、hashlib模块
    Python学习第二阶段Day2,模块time/datetime、random、os、sys、shutil
  • 原文地址:https://www.cnblogs.com/zengguowang/p/5435990.html
Copyright © 2011-2022 走看看