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/;

linux:指令与档案的搜索的更多相关文章

  1. linux 指令备忘

    linux 指令备忘 1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和"..& ...

  2. Linux 指令大全

    作为一个小前端,以前有我们的运维大神在的时候,要给服务器做什么配置的时候就找他(那时幸福到哭),如今他走了,公司也没招人(想把这个钱省下来,让我发现了,毕竟我能当小运维用,虽然很这方面很渣渣,哈哈,偷 ...

  3. Linux 指令。

    从16年11月21号开始吧,加班变得特别频繁,基本上一周加5天,周六也会加,下班也很晚,一般都是10点9点,回家之后很疲惫,已经很久没有给自己充过电了,自己的学习计划和健身计划也打乱了,对工作的压力也 ...

  4. Linux 指令

    cat cdchmod chowncp cut 名称:cat使用权限:所有使用者使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName说明:把档案串连 ...

  5. linux指令大全(完整篇)(转)

       http://blog.chinaunix.net/uid-9681606-id-1998590.html  linux指令大全(完整篇)(转) 2009-03-17 01:21:46 分类:  ...

  6. linux备忘录-日志档案

    linux的日志档案 linux的日志档案记录系统或程序在运行过程中产生的一些信息,例如事件的记录,错误的记录等等.特别是在发生错误时,我们可以通过日志档案找到错误发生的根源,例如当我们无法启动邮件服 ...

  7. linux实用指令 | 程序员线上排查必知必会linux指令(持续更新中)

    Linux线上排查程序员实用指南 一.乱码问题 二.帮助指令 1. help命令 2. man命令 3. info命令 三.性能监测与优化 1. top命令 参考资源 Linux线上排查程序员实用指南 ...

  8. 详解Linux指令与文件的搜寻

    我们在管理Linux服务器时通常会进行搜索文件及目录操作,下面我们就开始了解一下linux目录结构的相关知识. 博主再奉上一套零基础入门Linux视频,带你从入门到精通 https://www.bil ...

  9. 04 Linux 指令语法结构与帮助命令

    一.Linux指令语法结构 [tyang3@localhost Desktop]$ command [-options] [arguments] 指令           选项           参 ...

随机推荐

  1. Bootstrap页面布局12 - BS表单元素的排版

    首先看看这行代码: <label for='account'>帐 号</label> <input id='account' name='account' type='t ...

  2. Linux+环境使用vim搭建php+IDE

    让我们开始DIY吧-!!终端下执行命令:whereis vim     将列出vim安装的路径. 否则执行 sudo apt-get install vim 安装vim .成功安装了vim,只需要在用 ...

  3. 八 mybatis查询缓存(一级缓存,二级缓存)和ehcache整合

    1       查询缓存 1.1     什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存.

  4. (IOS)Swift2.0 Radio 程序分析

    本文主要分享下楼主在学习Swift编程过程中,对GitHub上的一个开源项目Swift Radio的研究心得. 项目地址:https://github.com/swiftcodex/Swift-Rad ...

  5. python中的类,对象,方法,属性等介绍

    注:这篇文章写得很好.加底纹的是我自己的理解 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

  6. 【Android测试】【第九节】MonkeyRunner—— 初识

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4836815.html 不得不说两句,过了这么久才再次更新博 ...

  7. 执行动态sql返回参数

    ref: https://support.microsoft.com/en-us/kb/262499 ) ) DECLARE @IntVariable INT ) SET @SQLString = N ...

  8. C# Dictionary几种遍历方式

    class Program { static void Main(string[] args) { Dictionary<string, string> myDictionary = ne ...

  9. Object的属性property详细解释(自动生成成员变量)

    类Class中的属性property: 在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: @interfac ...

  10. jade复用

    jade复用说白了就是模板的继承. 使用 block 标识符,设置一个可修改的代码片段 layout.jade doctype html html head block title title Def ...