zoukankan      html  css  js  c++  java
  • Linux 文件查询

    查看文件类型:file

      如果你想要知道某个文件的基本数据,例如是属于ASCII或者是data文件,或者是binary,且其中有没有使用到动态函数库等等的信息,可以用file查看

      

      which (寻找“执行文件”)

      

           

      whereis (寻找特定文件)

      

      

      whereis是如何实先的呢,Linux系统会将系统内的所有文件都记录在一个数据库文件里面,而当使用whereis或者是locate时,都会以此数据库文件

      的内容为准,因为,有会你会发现使用这两个执行文件时,会找到已删除的文件,也切也找不到最新的刚才创建的文件。因为这两个命令是由数据库

      当中的结果去查找文件的所在。

      locate

      

      locate寻找的数据是由已创建的数据库/var/lib/mlocate/里面的数据所查询到的,所以不用直接在硬盘中访问数据,是很快速。

      那么有什么限制呢?就是因为它是经由数据库来查找的,而数据库的创建默认是每天执行一次,所以当你创建文件后查询该文件,那么locate

      会告诉你找不到。因为必须要更新数据库。那能否手动更新数据库吗?当然可以,更新locate数据库的方法非常简单,直接输入“updatedb”就可以了

      updatedb命令会去读取/etc/updatedb.conf这个配置文件的设置,然后去硬盘里面进行查找文件名的操作,最后就更新整个数据库文件了。因为updatedb

      会去查找硬盘,所以当你执行updatedb时,可能会等待数分钟时间。

      find

      

      

      关于参数-n,如图所示

      

      +4 代表大于等于5天前的文件名

      -4 代表小于等于4天内的文件名

      4 则是代表4-5那一天的文件名

      

      

      如果将系统里面某个账号删除了,但是账号已经在系统内创建了很多文件时,就可能发生无主孤魂的文件存在。此时可以用-nouser来找出该类型文件。

      

      -perm这个参数,他的重点在找出特殊权限的文件。SUID与SGID都可以设置在二进制程序上,假设想要将/bin 、/sbin这两个目录下只要有SUID或者

      SGID的文件就列出来,你可以这样做:

      

      因为SUID是4分,SGID是2分,总共6分,因此可用+6000来处理这个权限。find后面可以接多个目录进行查找,另外find本来就会查找子目录。

      

          

      范例把的例子以图解来说明,如图

      

      {}代表的是“由find找到的内容”,如夯土,find的结果会被放置到{}位置中。

      -exec一直到“;”是关键字,代表find额外命令的开始(-exec)到结束(;),在这中间就是find命令内的额外命令。在上例中就是“ls -l{}”

      因为“;”在bash环境下有特殊意义,因此利用反斜杠来转义。

      如果要找的文件是具有特殊属性的,例如SUID、文件所有者、文件大小等,那么利用locate是没有办法找到。用find就很重要啦。

      find还可以利用通配符来找文件名。比如想找/etc下面文件名包含httpd的文件:

      

     

  • 相关阅读:
    京东css三角形做法
    css三角
    java 优势和劣势
    windows常用命令
    25 abstract 抽象
    24static 和final关键字之final
    面试题----static
    定义变量在前和定义变量在后
    java注解
    23static 和final关键词 之static 和运行顺序
  • 原文地址:https://www.cnblogs.com/jixp/p/10840642.html
Copyright © 2011-2022 走看看