命令与文件的查询 which whereis locate find

一:which

which查找脚本文件也就是我们的系统命令
用法:which [command] 默认根据我们PATH路径去查找,但是不同的用户肯定设置不同的PATH,所以就像普通用户查找不到一些/sbin/下的命令是正常的。但是有的命令我自己可以用,但是查找不到就奇怪了,比如”cd”命令,实际上它是bash内置命令。

student@student:$ type cd
cd is a shell builtin

参数:-a : 将所有由PATH路径下可查找的命令均列出,而不只找到第一个命令。

二:whereis和locate

whereis和locate 的查找方式都是查找我们本地的数据库,所以速度相当的快。
whereis用法:whereis filename 查找文件名的位置
whereis参数:-b :只查找二进制的文件
-m:查找说明文件manual路径下的文件
-s:只查找source源文件
-u:查找除了上面的三个选项的其他文件。
loacte用法:locate filename :注意:filename可以不全,所以适用于只记得一般的文件名的查找。
locate参数:-i:忽略大小写的差异
-r:后面可接正则表达式的显示方式

三:find

find查找命令的优点是有很强大的功能,但是缺点是find是查找磁盘,所以速度特别慢。下面介绍下find:

与时间有关的参数

(1):-mtime n :n为数字,意思是在n天之前的”一天之内修改的文件”; eg:find / -mtime 0 表示从现在开始到24小时前有改动过内容的文件。
(2):-mtime +n:意思是在n天之前被更改过的文件;eg:find / -mtime 3 表示从现在开始到三天前有改动过内容的文件。
(3):-mtime -n:意思是在n天到现在被修改过的文件。
(4):-newer file:file 为一个存在的文件,表示列出比file更加新的文件。eg:find / -newer file 表示找出系统中比file新的文件。

与用户或者用户组有关的参数

(5):-uid n:n为uid,表示uid为n的用户所拥有的文件。eg:find / -uid 1000 表示查找出系统下uid为1000的用户拥有的文件
(6):-gid n:n为gid。
(7):-user name:name 为用户账号名称。 eg:find / -user student 表示查找出系统下用户名为student的用户拥有的文件
(8):-group name:name 为组的名称。
(9):-nouser :寻找文件所有者不存在于/etc/passwd的人。 eg:find / -nouser 表示查找文件所有者不存在的文件。
(10):-nogroup:寻找文件所有者不存在于/etc/group的人。

与文件权限以及名称有关的参数

(11):-name filename:查找文件名为filename的文件。eg:find / -name passwd 表示查找/下文件名叫passwd的文件。
(12):-size [+-]SIZE:查找比SIZE大或者小的文件,eg:-size +50k 表示查找比50k大的。
(13):-type [f,d,l,s]:f:正规文件,d:目录,l:链接文件,s:socket文件
(14):-perm mode:查找文件属性刚好等于mod的文件。
(15):-perm -mode:查找的文件属性必须全部包括mode(也就是>=mode)就会被查找出来。权限之间是”且”的关系。
(16):-perm +mode:只要包含其中一个权限就可以。权限之间是”或”的关系。

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2015-11-09 09:47  杨博东的博客  阅读(162)  评论(0编辑  收藏  举报

导航