• [转载] Linux中的搜索文件命令


    搜索文件用处很大,我们往往需要知道一个文件存放在什么地方,我们又知道Linux是命令强大的一个系统,所以也有好多非常优秀的搜索命令。通常find不常用,因为速度慢,耗费硬盘空间。通常我们先使用whereis或是locate来检查,如果真的找不到了,才以find来搜索。为什么呢?因为whereis  locate是使用数据库来搜索数据,所以相当快,而且并没有是几搜索硬盘,比较省时。

    1.which(寻找“执行文件”),which 后面跟可执行文件名 如果在最后加上-a,则可以找到所有同名执行文件,而非只显示一个。这个命令是根据“PATH”环境变量所规范的路径,来搜索“执行文件”的文件名,所以重点是找出“执行文件”。
    2.whereis(寻找特定文件)
    为什么whereis会比find搜索速度快呢?是因为Linux系统会将系统内的所有文件都记录在一个数据库文件里,当使用whereis或者是locate时,都会以此数据库的内容为准,因此,有时,您还会发现,使用这两个执行文件时,会找到已删除的文件,而且也找不到刚刚建立的最新文件。这就是因为这两个命令是通过数据库中的结果去搜索文件。Linux每天会针对Linux主机上所有文件的位置,进行搜索数据库的更新,更新的程序就是updatedb.
    3.locate的使用更简单,直接在后面输入“文件的部分名称”后,就能够得到结果。
    4.find是一个功能十分强大的命令。
    如果么查找一个文件,使用find是不错的主意。它可以根据不同的参数提供搜索功能,例如,么查找文件名为httpd.conf的文件,他应该是在/etc中,就可以使用“find  /etc  -name httpd.conf ”,如果还记得有一个文件的文件名包含了httpd.conf的文件,但不知道全名,可以用通配符*,如“find  /etc  -name  '*httpd' ”就可以将文件名包含httpd的文件都列出来,不过由于find在查找数据时相当消耗硬盘,所以一般不要使用find,有更好的命令可以取代它,那就是whereis 与locate.
     
    例一:将过去系统上24小时内更改所内容的文件列出:find  /  -mtime  0,其中0是重点,0表示当前时间,所以,从现在开始到24小时前
     
    例二:查找/etc下面的文件,如果文件日期比/etc/passwd新就列出来:find  /etc  -newer  /etc/passwd
     
    例三:搜索/home下面属于dmtsai的文件:find  /home  -user  dmtsai
     
    例四:搜索系统中不属于任何人的文件: find  /  -nouser,通过这个命令,可以很轻松地找出不太正常的我呢见,如果找到不属于系统任何人的文件时,不要太紧张,有时候是正常的。尤其是您以源码自行编译软件时。
     
    例五:找出文件名为passwd的文件:find  /  -name  passwd
     
    例六:搜索文件中含有SGID/SUID/SBIT的属性:find  /  -perm  +7000
    7000就是---s--s--t,只要含有s或t的就列出,所以要加7000
     
    例七:将上例中找到的文件使用ls -l列出来:find  /   perm  +7000  -exec ls -l  {} ;
    其中-exec后面的命令就是额外的命令,{}表示”有find找到的内容“,所以,-exec ls -l {}就是将前面找到的文件详细信息列出来。-exec最后一定要以;结束才行。
     
    例八:找出系统中大于1MB的文件:find  /  size  +1000K
     
    转载自:http://blog.chinaunix.net/uid-26983585-id-3391759.html
  • 相关阅读:
    Props VS State
    Component VS PureComponent
    Webpack loaders
    近期需要学习的技术
    jQuery源码解读三选择器
    jQuery源码解读二(apply和call)
    jQuery源码解读一
    Web语义化
    如何用python语言撸出图表系统
    抓取android系统日志_记录一次定位app闪退故障
  • 原文地址:https://www.cnblogs.com/noxy/p/7651712.html
Copyright © 2020-2023  润新知