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

linux下命令与文件的查询

2016-06-03 10:18 239 查看
Linux命令与文件的查询

1 脚本文件名的查询

which(寻找“执行文件“)

参数-a :将所有由path目录中可以找到的命令均列出,而不止第一个被找到的目录名称

以 ifconfig为例



可以找到正确的文件执行名

以which 本身为例





alias--->命令别名,输入which会等于后面接的那串命令

以常用的cd指令为例





为什么会找不到呢?

原因在于which的查找机制,which是默认查找PATH内所规范的目录,cd是bash内置的命令当然找不到啦,这里我们使用type指令





可以看出cd是一个shell builtin 即就内置命令
2 文件名的查找

通常而言我们不常使用find指令,由于find指令需要在内存中查找,速度会很慢,所以我们会先使用whereis和locate来检查,如果找不到再使用find,whereis和locate都是使用数据库来查找,所以速度很快。

whereis(寻找特定文件)

参数:-b :只查找二进制格式文件

-m :只找在说明文件manual路径下的文件

-s :只找source源文件

-u :查找不再上述三个选项中的其他文件

以ifconfig指令为例





只找出跟passwd有关的是”说明文件“





locate

locate指令使用非常简单,直接后面输入”文件部分名称“即可

参数:-i 忽略大小写的差异

-r 后面可接正则表达式的显示方式

以passwd为例



只要含有 passwd在其中,就会被显示出来。

使用限制:由于locate查找数据是由 已创建的数据库库/var/lib/mlocata/所查到的,数据库信息需要更新,所以当我们新建一个文件夹后查找这个文件

由于数据库并未更新,所以会查不到,我们可以采用手动更新数据库的方式。---->直接输入updatesb

find指令

这是一个很重要的指令,直接在内存中查找。

时间参数:以-mtime为例

-mtime n :n为数字,意义为在n天之前的”一天之内“被更改过的文件

-mtime +n :列出在n天之前(不含n天本身)被更改的文件名

-mtime -n :列出在n天之内(含n天本身)被更改过的文件名

-newer file :file为一个存在的文件,列出比file还要新的文件名

图示为:

以find /var -mtime4 为例时间轴为:





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

-uid n:这个数字是用户的账号ID,记录在/etc/passwd中与账号名称对应的数字

-gid n:n为用户组名的ID

-username :name为用户账号名称 如root

-groupname:name为用户组名

-nouser :寻找文件所有者不存在/etc/passwd的人

-nogroup:寻找文件的所用户组不存在于etc/group中的文件

查找 /home下属于dz的文件:





查找根目录中不属于任何人的文件





-name filename 查找文件名为 1 的文件





-name [+ -]size 查找比size还要大的文件 size规格:c:代表byte,k代表1024bytes 要找

以找比50kb小的文件为例





-type type:查找类型为type的文件

以查找正规文件为例(f)





文件权限参数

-pern mode :查找文件类型刚好等于 mode的文件

-pern -mode:查找文件权限 必须要全部包含mode权限的文件

-pern +mode 查找文件权限 包含任意mode权限的文件

比如说我们查找-rwx r-x r-x 即 -pern+755时候也会包括一个-rw- --- ---文件存在,因为他 包含了-rw属性

查找权限为777的文件





权限为包含任意一个777以内权限的文件





权限为 必须包含777所有权限的文件





其他操作:

-exec command:commad 为其他命令,-exec后面可接其他命令来处理查找的结果

如 将权限包含7000其中之一的文件 使用ls -l列出来





以find / perm +7000 -exec ls -l {} \; 指令为例



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: