浅墨浓香

想要天亮进城,就得天黑赶路。

导航

第3章 Linux常用命令(3)_文件搜索命令

Posted on 2016-11-30 11:25  浅墨浓香  阅读(351)  评论(0编辑  收藏  举报

3. 文件搜索命令

3.1 文件搜索:find

(1)find命令

命令名称

find

命令所在路径

/bin/find

执行权限

所有用户

语法

find [搜索范围] [-选项] [匹配条件]

-name:根据文件名查找

-iname:根据文件名查找,但忽略大小写

-inum:根据i节点查找

-size [+-n]: 根据文件大小查找,+n大于,-n小于,n等于

             其中n的单位:数据块(512字节,即0.5K)的大小

-amin,cmin,mmin:根据时间属性(访问access、文件属性(如权限、所有者等)change、文件内容modify)查找。后面+-时间,单位分钟,+表示大于,-表示小于。

-user、-group:根据所有者查找、所属组查找

-type:根据文类型查找,f文件、d目录、l软链接文件

-exec/-ok 命令 {} \;:这是一种格式是固定的,主要用来对搜索结果执行操作,其中-ok会询问操作。

(2)注意事项

  ①find是一种精准匹确,也就是查找的结果严格匹配条件

  ②如果要进行模糊匹配,要加上匹配条件可以加上*,?匹配单个字符。

  ③匹配条件可以用-a和-o连接,-a表示and连接、-o表示or连接

(3)应用举例

  ①在目录/etc中查找文件init: #find /etc –name init

  ②搜索/etc/下所有文件名以“init”开头的普通文件:

#find /etc –name *init -a –type f

  ③在根目录下查找大于80MB且小于100MB的文件:

#find / -size +163840 –a –size -204800 (100MB=204800*0.5KB)

  ④在根目录下查找所有者为testUser的文件: #find / -user testUser

  ⑤在/etc下查找5分钟内被修改过属性的文件和目录:#find /etc –cmin -5

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

#find /etc -name inittab -exec ls -ld {} \;

3.2 在文件资料库中查找文件:locate

(1)locate命令

命令名称

locate

命令所在路径

/usr/bin/locate

执行权限

所有用户

语法

locate [-选项][文件名]

    -i:忽略大小写

(2)注意事项

  ①系统为文件建立资料库(/var/lib/mlocate/mlocate.db)并定时更新,以后直接在这个库中查找,所以查找速度快

  ②locate的安装包名为mlocate(可用yum list | grep locate查看),安装方法:

    yum -y install mlocate,然后执行updatedb;

  ③新建的文件并不会及时被收入到资料库,所以要执行updatedb。同时要注意/tmp下的文件不能被收入到资料库中。

(3)应用举例:

  ①查找系统中文件名为inittab的文件:$locate inittab

  ②查找locate这个文件本身:$locate locate

3.3 搜索命令所在目录及别名信息:which

(1)which命令

命令名称

which

命令所在路径

/usr/bin/which

执行权限

所有用户

语法

which 命令

(2)应用举例:

  ①查看rm命令是否有别名:#which rm

  ②查找命令及是否有别名所在目录:#which useradd

3.4 搜索命令所在目录及帮助文档路径:whereis

(1)whereis命令

命令名称

whereis

命令所在路径

/usr/bin/whereis

执行权限

所有用户

语法

whereis [命令名称]

(2)应用举例:

  ①查看ls命令目录及帮助文档路径:#whereis ls

3.5 在文件中搜寻字串匹配的行并输出:grep

(1)grep命令

命令名称

grep(英语原义:global regular expression print)

命令所在路径

/bin/grep

执行权限

所有用户

语法

grep –iv [指定字串] 文件

     -i:忽略大小写

     -v:排除指定字串

(2)应用举例:

  ①查看安装日志中关于mysql的信息:#grep mysql /root/install.log

  ②查看除注释行外的文件内容:

#grep –v ^# /etc/inittab //^表示行首,#是注释的开始