1、文件搜索命令  which

语法:which [命令名称]

范例:$which ls  列出ls命令所在目录

[chanshuyi@localhost ~]$ which ls
alias ls='ls --color=auto'
        /bin/ls

另外一个命令:whereis [名称名称],也可以列出命令所在目录。

[chanshuyi@localhost ~]$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

他们的不同之处在于:Which提供命令的别名信息,Whereis提供命令的帮助信息。

如上面中的“alias ls ='ls --color=auto'”就是ls命令的别名信息,它表示我们按下ls命令就相当于执行“ls --color=auto”命令。

whereis中输出部分的文件ls.1.gz和ls.1p.gz是指ls这个命令的帮助文件。

2、文件搜索命令  find

语法:find [搜索路径] [选项] [搜索关键字]

[选项]

-name 按文件名查找(* 匹配任意字符,包括0个字符。? 匹配单个字符)

范例:

find /etc -name init
在/etc目录下查找名字为init的文件

find /etc -name init*
在/etc目录下查找所有以init开头的文件

find /etc -name init???
在/etc目录下查找所有以init开头的,并且init后还有3个字符的文字

[chanshuyi@localhost Desktop]$ ls
hello.txt  linuxqq-v1.0.2-beta1.i386.rpm  Screenshot.png  test13  test.txt
[chanshuyi@localhost Desktop]$ find . -name test\*    <!-- 这里的星号要加右斜杠转移,否则会出错 -->
./test13
./test13/testfile
./test.txt

-size  按文件大小查找(+ 表示大于指定大小,- 表示小于指定大小, = 表示刚好等于指定大小)

单位是block,1个block512Byte,即1KB=2Block,1KB等于两个数据块。

范例:

find / -size +2048
在根目录下查找大小大于100MB的文件

find / -size -2048
在根目录下查找大小小于100MB的文件

find / -size +2048
在根目录下查找大小刚好等于100MB的文件(一般不用,因为不可能刚好等于100MB)

-user 根据文件的所有者查找

范例:

find /home -user chan
在/home下查找所有者为chan的文件

-根据时间查找

一共有两组共6个选项,分别是:

ctime/atime/mtime  以天为单位

cmin/amin/mmin  以分钟为单位

c 表示change,指文件的属性(所有者、所属组、权限等)被修改过

a 表示accesss,表示被访问过

m表示modify,表示文件内容被修改过

其中还有   -表示之内,+表示超过

范例:

find . -mmin -120
在当前目录下查找120分钟内内容被修改过的文件

find . -mmin +60
在当前目录下超过60分钟之前内容被修改过的文件(即60分钟内被修改过的文件除外)

find . -mtime -2
查找两天之内内容被修改过的文件

find . -atime -2
查找两天之内内容被访问过的文件

-type 按文件类型查找(f 表示二进制文件,L 表示软链接文件,D 表示目录)

范例:

find . -type f
查找目录下的所有二进制文件

-inum 根据i节点找(i节点是linux中文件的唯一标识)

范例:

//查找到hello.txt文件的i节点是781951
[chanshuyi@localhost Desktop]$ ls -i
781951 hello.txt                      782880 Screenshot.png  782291 test.txt
782823 linuxqq-v1.0.2-beta1.i386.rpm  782587 test13

//根据i节点查找
[chanshuyi@localhost Desktop]$ find . -inum 781951
./hello.txt

一般情况下用来查找一些文件名为特殊字符的文件,因为这些特殊文件名对于linux来说无法识别(比如“a b” 空间有空格)

3、find连接符

当我们既想以文件名又想用文件大小作为查询条件时,就需要用到find连接符了。

-a  逻辑与连接符,-o 逻辑或连接符,-exec 连接执行符, -ok 连接执行符(-ok与-exec的区别就是,ok在寻找到目标之后会询问你是否进行之前命令中设定的操作,而-exec则不会进行询问)

范例:

--【-exec连接符】找到hello.txt并直接显示它
[chanshuyi@localhost Desktop]$ find . -name hello.txt -exec cat {} \;
第一行
第二行
第三行
倒数第2行
Hello, I'm in centos system to write a introduce file to you.

--找到hello.txt后,询问用户是否进行对应操作,输入Y/N
[chanshuyi@localhost Desktop]$ find . -name hello.txt -ok cat {} \;
< cat ... ./hello.txt > ? y
第一行
第二行
第三行
倒数第2行
Hello, I'm in centos system to write a introduce file to you.

注:命令行里的“{}”表示查找到的对象,是起到一个指代的作用,后面的“\;”是固定的。

3、文件搜索指令  locate

语法:locate [搜索关键字]

范例:

[chanshuyi@localhost Desktop]$ locate hello.txt
/home/chanshuyi/Desktop/hello.txt

Locate命令与find命令不同,locate查找是根据系统的文件目录数据库进行查找的,而find是直接去硬盘查找的。

因此locate对于刚刚创建的文件或目录会找不到。(因为系统文件目录数据库还未更新)。

你也可以用updatedb去手动更新系统的文件目录数据库。但locate命令一般只有在linux系统中存在,在其他类型的Unix系统中是不存在的。

注意:updatedb指令只有root用户才有权限操作。你可以用su命令切换到root用户下。

4、在文件中搜寻字符串匹配的行并输出  grep

语法:grep [指定字符串] [源文件]

范例:

grep ftp /etc/services
在services文件中搜寻ftp字段,并输出所在的行

下一篇:Linux学习笔记四:Linux的帮助命令

4.Linux的文件搜索命令的更多相关文章

  1. Linux的文件搜索命令(locate ,find,grep,find命令和)

    刚开始学Linux,这是关于Linux文件搜索命令,就目前,尽我所能把他写全一点,后期随时补充 文件搜索命令 一.locate命令 二.find命令 三.grep命令 四.find命令和grep命令的 ...

  2. [Linux] 012 文件搜索命令

    文件搜索命令:find 命令名称:find 命令所在路径:/bin/find 执行权限:所有用户 语法:find [搜索范围] [匹配条件] 功能描述:文件搜索 范例: 在目录 /etc 中查找文件 ...

  3. Linux基本命令 文件搜索命令

    1.文件搜索命令find ================================================================================== 命令名称 ...

  4. Linux 之 文件搜索命令

    文件搜索命令 参考教程:[千峰教育] 文件搜索定位 grep: 作用:通用规则表达式分析程序,是一种强大的文本搜索工具, 它能使用正则表达式搜索文本,并把匹配的行打印出来. 格式:grep [选项] ...

  5. linux下文件搜索命令学习笔记

    1. locate:按照文件名搜索文件 locate filename 与find在整个操作系统中遍历搜索不同,locate命令在/var/lib/mlocate这个后台数据库中按照文件名搜索,所以优 ...

  6. Linux 基础——文件搜索命令find

    一.find命令的好处 有时会经常在目录下找文件或目录的具体存放在哪,但是该目录下的文件又很多不好找出.这时并不需要手动查看所有的文件,用find命令来帮助查找就行了.所以文件或目录一定归好类,存放有 ...

  7. Linux常用命令学习2---(文件搜索命令locate find、命令搜索命令whereis which、字符串搜索命令grep、帮助命令man)

     1.文件搜索命令:locate [文件名]    在后台数据库中按文件名搜索,搜索速度比find快,耗费资源更少    例子:locate test.txt,就会显示文件名包含 test.txt的所 ...

  8. Linux文件搜索命令

    文件搜索命令:locate locate 文件名 在后台数据库中按文件名搜索,搜索速度很快(比find命令要快得多) locate命令所搜索的后台数据库的位置:/var/bin/mlocate 支持模 ...

  9. linux常用命令:3文件搜索命令

    文件搜索命令 1. 命令名:find 命令所在路径:/bin/find 执行权限:所有用户 语法:find  [搜索范围]  [匹配条件] 功能描述:文件搜索 文件搜索类型 通过文件名搜索 -name ...

随机推荐

  1. unity脚本的运行顺序以及单例的实现

    unity引擎把所有脚本先行编译后,在运行的时候一批,一批的函数进行执行. unity脚本自带函数执行顺序如下:将下面脚本挂在任意物体运行即可得到 Awake ->OnEable-> St ...

  2. android学习2——RelativeLayout

    相对布局管理器,一个View的位置是相对于另外一个View定义的. <?xml version="1.0" encoding="utf-8"?> & ...

  3. php查询,多条件查询

    单条件查询: 1.先要有一张表,显示出表中的数据: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  4. EFcore与动态模型

    在开发商城系统的时候,大家会遇到这样的需求,商城系统里支持多种商品类型,比如衣服,手机,首饰等,每一种产品类型都有自己独有的参数信息,比如衣服有颜色,首饰有材质等,大家可以上淘宝看一下就明白了.现在的 ...

  5. Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)

    加油加油. --WH 一.发送邮件的原理 在了解其原理之前,先要知道两个协议,SMTP和POP3 SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议,发送邮件的协 ...

  6. 普实软件:MES机器数据维护

    概述 机器数据有两个菜单,机器主数据在制造数据模块下,机器MES数据相关的设置在MES模块下,两个菜单查看的内容是一致的,但是机器主数据显示的是普通的机器,可做新增.编辑.删除操作,机器MES数据仅做 ...

  7. 讲一个使用jquery-slick旋转木马效果插件案例

    效果展示连接 http://www.jqcool.net/demo/201405/jquery-slick/ 今天刚接触这个插件,被这插件搞的大脑风暴了 所以来记录一下使用方法 首先注意一点 不特别标 ...

  8. express 4

    http://www.expressjs.com.cn/4x/api.html#app中间件 路由 模板 跨域 json cookie session

  9. WeMall微信商城签到插件Sign的主要源码

    WeMall微信商城源码签到插件Sign,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php namespace Ad ...

  10. 3433: [Usaco2014 Jan]Recording the Moolympics

    3433: [Usaco2014 Jan]Recording the Moolympics Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 137  S ...