Linux学习笔记_3_Linux常用命令_3_文件搜索命令


文件搜索命令:

1、which /usr/bin/which

显示系统命令所在目录,绝对目录,不能查找文件

which[系统命令]

e.g. whichls

* whereis ls

附:与whereis不同:which会列出这个命令的别名记录

whereis会显示出这个命令的帮助文档所在位置

2、find /usr/bin/find

查找文件或目录,任何文件皆可,如图片,压缩包,网页。。。

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

a)find/etc -name文件名

find/etc -name init //在目录/etc中查找文件init,最常见

//注意,尽量缩小查找范围,不要在根目录下查找

//不然,1、查找速度非常慢;2、占用大量系统资源

查找结果与Windows不同,Windows会把所有包含 init关键词的文件全都列出来而Linux则只会匹配init关键词

使用通配浮:

*:用于匹配任意字符 find/etc -name init* //查找所有以init开头的文件

find/etc -name * init * // init左右都没有空格,用于查找所有包含init关键词的文件

?:用于匹配单个字符 find/etc -name init??? //这个文件会有七个字符。

sudofind /etc -name ?init?? // Ubuntu

b)find/etc -size文件大小 //他是以数据块为单位的!512字节=0.5K

1K=2blocks

100M=?blocks

100M= 102400K = 102400*2blocks

find/etc -size +204800

在/etc下查找大于80MB大于100MB的文件

find/etc -size - 204800

在/etc下查找大于80MB小于100MB的文件

find/etc -size 204800

在/etc下查找等于100MB的文件 //不常用

c)find/etc -user username查找属于username的文件

find/home/xiaofang/Programme/Data_Structure/ -user xiaofang

d)通过时间值查找:

1、以天为单位: ctime,atime,mtime

2、以分钟为单位: cmin,amin,mmin //更为常用

c-change改变:表示文件的属性被修改过,比如:所有者,所属组,权限

a-access访问:文件被浏览过

m-modify修改:文件内容被修改过

-之内,+超过

e)find/etc -type文件类型以文件类型查找

-f二进制文件

-l软链接文件

-d目录

f)-inum通过i节点进行查找

附:.表示当前目录

find. -inum 10 -exec rm {} \;

找到i节点为10的文件,并删除她

find连接符:

1、-a:and逻辑与

-o:or逻辑或

2、-exec

find….. -exec命令 {}\;//固定格式

{}:find的查询结果

\ :转义符,使得符号命令使用本身的含义

; :语句结束

find/etc -name inittab -exec ls -l {} \;在/etc下查找inittab文件并显示其详细信息

find/home -user sax -exec rm -rf {} \;

删除用户sax所有的文件

另: find/home -user sax -ok rm -rf {} \;

删除用户sax所有的文件

他会提示你是否确认

3、locate[listfile in databases]: /usr/bin/locate //是Linux所特有的命令

寻找文件或目录,最好用于快速定文系统命令,配置文件等

locate[搜索关键字]//速度很快,但有时候会找不到

//locate是在文件数据库中查找的,所以速度会很快,但是如果数据库没有包含这个文件的话,他就会找不到;

配合命令:updatedb[updatethe slocate database]: /usr/bin/updatedb

建立整个系统目录文件的数据库

注意:其执行权限为:root!!!

4、grep: /bin/grep

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

grep[指定字串][源文件]

grepftp /etc/services

附:grep功能特别强大,支持正则表达式,她的更加具体的介绍请参考我的另一篇博文:

《LinuxShell学习笔记 二》 

相关内容