Linux系统之常用文件搜索命令

常用文件搜索命令

(1)which命令

(2)find命令

(3)locate

(4)updatedb

(5)grep 

(6)man

(7)whatis

(8)whereis

 

(1)which命令

命令名称:which
命令所在路径:/usr/bin/which
执行权限:所有用户
语法:which [命令名称]
功能描述:显示系统命令所在目录,另外显示命令别名记录
例子:which ls

 (2)find命令

命令名称:find
命令所在路径:/usr/bin/find
执行权限:所有用户
语法:find [搜索路径] [搜索关键字]
功能描述:查找文件或目录

文件名:

参数-name 文件名

例子:在目录/etc中查找文件newdir

find /etc -name newdir

使用通配符

* 匹配任意字符

例子:find newdir*

搜索以newdir开头的文件或目录

 

?匹配单个字符:

例子:find new???

搜索以new开头,后面三个任意字符的文件或目录

 

 文件大小:

参数-size 文件大小

这里我们姚之队 linux的最小存储单位是一个数据块

block数据块  512字节=0.5kb   2个数据块=1kb

100MB=102400kb=204800 block

例子:

     大于 +

     find / -size +204800

    在根目录下查找大于100MB的文件

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

等于 =
find / -size 204800
在根目录下查找大于100MB的文件

文件所有者:

 参数 -user 文件所有者

 例子 :find / -user sam

在根目录下查找所有者为sam的文件

时间:

天 ctime、atime、mtine
分钟 cmin、amin、mmin
c-change 改变 表示文件属性被修改,所有者,所属组,权限
a-access 访问
m-modify 修改 表示文件内容被修改过
- 表示什么时间之内
+ 表示超过什么时间
= 表示指定在特定时间

例子 :

find /etc -ctime -1
在/etc下查找24小时内被修改过属性的文件和目录

   find /etc -mmin -120
   在/etc下查找两小时内被修改的文件和目录

 连接符:

-a and 逻辑与
-o or 逻辑或

find ...... -exec 命令 {} \;
find ...... -ok 命令 {} \;

{} find查询的结果
\  转义符,符号命令使用本身的含义
;  结果

文件类型:

参数 -type 
f 二进制文件
l 软链接文件
d 目录

i节点:

参数 -inum 

每一个文件或目录都有自己 的I节点 ,这样操作系统才能定位到文件或目录

怎么查看文件或目录的节点呢?
命令:ls -i

例子:

find /etc -name init* -a -type f
在/etc下查找以init开头的文件
find /etc -size +163840 -a -size -204800 在/etc下查找大于80MB小于100MB的文件
find /etc name inittab -exec ls -l {} \; 在/etc下查找inittab文件并显示其详细信息
find . -inum 16 -exec rm {} \; 在/etc下查找i节点为16的文件或目录并删除

(3)locate

命令名称:locate
英文原意:list files in databases
命令所在路径:/usr/bin/locate
执行权限:所有用户
语法:locate [搜索关键字]
功能描述:寻找文件或目录
例子:locate file

注意:使用这个命令需要先使用下面的命令

(4)updatedb

命令名称:updatedb
英文原意:updata the slocate database
命令所在路径:/usr/bin/updatedb
执行权限:root
语法:updatedb
功能描述:建立整个系统目录文件的数据库
例子:updatedb

(5)grep 

命令名称:grep
命令所在路径:/bin/grep
执行权限:所有用户
语法:grep [指定字符] [源文件]
功能描述:在文件中搜寻字串匹配的行并输出
例子:grep ftp /etc/services

(6)man命令

命令名称:man
英文原意:manual
命令所在路径:/usr/bin/man
执行权限:所有用户
语法:man [命令或配置文件]
功能描述:获得帮助信息
例子:
man ls
查看ls命令的帮助信息

man services
查看配置文件services的帮助信息

(7)whatis命令

命令名称:whatis
英文原意:search the whatis database for strings
命令所在路径:/usr/bin/whatis apropos
/usr/sbin/makewhatis

执行权限:All User,root
语法:what apropos [任何关键字]
功能描述:获得索引的简短说明信息
例子:
whatis ls
apropos fstab

注意 :当使用这两个命令发生错误时,就是whatis database没有建立

命令 :makewhatis,建立whatis和apropos搜索使用的数据库

(8)whereis 命令

命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

语法

whereis(选项)(参数)

选项

-b:只查找二进制文件;

-B<目录>:只在设置的目录下查找二进制文件;

-f:不显示文件名前的路径名称;

-m:只查找说明文件;

-M<目录>:只在设置的目录下查找说明文件;

-s:只查找原始代码文件;

-S<目录>只在设置的目录下查找原始代码文件;

-u:查找不包含指定类型的文件。

 

posted @ 2018-12-05 20:06  -零  阅读(448)  评论(0编辑  收藏  举报