linux下命令与文件的查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下命令与文件的查询相关的知识,希望对你有一定的参考价值。

            

                                          Linux命令与文件的查询


1  脚本文件名的查询

  • which(寻找“执行文件“)

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

  • 以 ifconfig为例

技术分享 可以找到正确的文件执行名

  • 以which 本身为例


    技术分享

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

  • 以常用的cd指令为例

技术分享

为什么会找不到呢?


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

技术分享

   

可以看出cd是一个shell builtin 即就内置命令

2  文件名的查找

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


  • 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  {}  \;  指令为例

技术分享




以上是关于linux下命令与文件的查询的主要内容,如果未能解决你的问题,请参考以下文章

linux 下怎么查询指定目录下所有文件的权限?

Linux系统下基本命令

Linux中如何在指定目录下查找文件?

Linux 命令与文件的搜寻

如何在Linux命令行下查询字典

Linux环境下实现对文件读写操作