• 查找文件


    whereis命令  


    whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)man说明文件(参数-m)源代码文件(参数-s)。如果省略参数,则返回所有信息。
    和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
    但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

    -b:只查找二进制文件;
    -B<目录>:只在设置的目录下查找二进制文件;
    -f:不显示文件名前的路径名称;
    -m:只查找说明文件;
    -M<目录>:只在设置的目录下查找说明文件;
    -s:只查找原始代码文件;
    -S<目录>只在设置的目录下查找原始代码文件;
    -u:查找不包含指定类型的文件。

    说明:whereis -m svn查出说明文档路径,whereis -s svn找source源文件。

     


    locate/slocate命令


    locate命令和slocate命令都用来查找文件或目录。
    locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。
    Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。
    为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

      说明 : locate -i 忽略大小写


    find命令

    说明 : find / -name a.txt 查找 / 路径下文件名称为a.txt的文件

    locate和find区别

    • locate需要索引库,搜索的是索引库中的文件,需要更新索引库updatedb;find为实时搜索
    • 搜索/usr/local文件夹下的a.txt文件locate命令是locate /usr/local/a.txt; find的命令是find /usr/local -name a.txt
  • 相关阅读:
    mybatis 绑定 statement 失败
    JDBC链接Mysql失败
    Mysql 链接数据库时区错误
    mybatis 延迟加载
    C++ 虚函数表解析
    运行错误:error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or
    QComboBox的activated与currentIndexChanged的区别
    QT 文件对话框(QFileDialog)
    VS2010 ERROR:c1xx fatal error c1083
    django 在字符串[str(list)]中精确查找
  • 原文地址:https://www.cnblogs.com/woms/p/5944749.html
Copyright © 2020-2023  润新知