您的位置:首页 > 运维架构 > Linux

linux常用命令——2.文件搜索命令

2017-02-14 15:58 246 查看

linux中常用的搜索命令:

which  查看可执行文件的位置。
whereis 查看文件的位置。 
locate   配合数据库查看文件位置。
find   实际搜寻硬盘查询文件名称。

1、which命令

在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

命令格式:
which 可执行文件名称 
例:
[root@localhost ~]# which pwd
/bin/pwd

2、whereis命令

只能用于程序名的搜索
whereis查找的速度非常快,因为linux系统会将系统内的所有文件都记录在一个数据库文件中,但数据库文件并不是实时更新,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据或刚建立,却无法查找到,原因就是因为数据库文件没有被更新。 
使用whereis和ocate时,会从数据库中查找数据,效率自然会很高
而find命令,是通过遍历硬盘来查找,所有相对慢些。 

命令格式:
whereis [-bmsu] [BMS 目录名 -f ] 文件名

命令参数:
-b   定位可执行文件。
-m   定位帮助文件。
-s   定位源代码文件。
-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

实例:
[root@localhost ~]# whereis tomcat
tomcat:
[root@localhost ~]# whereis svn
svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz

说明:
tomcat没安装,找不出来,svn安装找出了很多相关文件

3、find命令

在目录结构中搜索文件,并执行指定的操作。

命令格式:
find pathname -options [-print ...]

命令参数:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 
-print: find命令将匹配的文件输出到标准输出。 

命令选项:
-name    按照文件名查找文件。
-perm    按照文件权限来查找文件。
-user    按照文件属主来查找文件。
-group   按照文件所属的组来查找文件。
-mtime -n +n 按文件的更改时间来查找文件,-n表示更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。
-size n:[c]  查找文件长度为n块的文件,带有c时表示文件长度以字节计。

-type   查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。

实例:
1:根据关键字查找 在当前目录查找 以.log结尾的文件。 ". "代表当前目录 
[root@localhost test]# find . -name "*.log"
./test3/log3-3.log
./test3/log3-1.log


2:按照目录或文件的权限来查找文件查找/opt/soft/test/目录下 权限为 777的文件
[root@localhost test]# find /opt/soft/test/ -perm 777
/opt/soft/test/log_link.log


3:按类型查找 查找当目录,以.log结尾的普通文件 
[root@localhost test]# find . -type f -name "*.log"
./log2014.log
./test4/log3-2.log


4:查找当前所有目录并排序
[root@localhost test]# find . -type d | sort
.
./scf
./scf/bin
./scf/doc


5:按大小查找文件查找当前目录大于1K的文件 
[root@localhost test]#  find . -size +1000c -print
.
./test4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息