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:查找不包含指定类型的文件。