通常在linux 中查找文件是先用whereis或locate,还是查不到后才用find命令。下面详细说明下着三个命令吧:


1. whereis 查看文件的位置

  常用参数:

  -b:只找二进制文件(可执行文件)

  -s:只找source源文件


  Linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis或locate命令查找时,都会以此数据库文件的内容为准,因此有时用这两个命令查找文件时,会找到已被删除的文件;而且在数据库更新(默认是一周更新一次)之前建的文件,会找不到,必须手动更新下数据库才行。手动更新数据库文件,可以使用这个命令:

  [root@wxr /]# updatedb

 

  下面实践下whereis命令:

  [root@wxr /]# whereis httpd.conf
  httpd: /usr/sbin/httpd /usr/sbin/httpd.worker /etc/httpd /usr/lib/httpd /usr/share/man/man8/httpd.8.gz


  [root@wxr /]# whereis -b httpd.conf
  httpd: /usr/sbin/httpd /usr/sbin/httpd.worker /etc/httpd /usr/lib/httpd

  但不知道为什么tomcat的启动文件找不到呢。。

  [root@wxr /]# whereis startup.sh
  startup:



2. locate 配合数据库查看文件位置

  使用此命令前,可先执行上面介绍的更新系统文件数据库命令,让库中文件最新鲜~

  下面继续实践:

  [root@wxr /]# locate httpd.conf
  /etc/httpd/conf/httpd.conf
  /usr/local/apache2/conf/.httpd.conf.swp
  /usr/local/apache2/conf/httpd.conf
  /usr/local/apache2/conf/original/httpd.conf
  /usr/local/httpd-2.2.4/docs/conf/httpd.conf
  /usr/local/httpd-2.2.4/docs/conf/httpd.conf.in


 [root@wxr /]# locate startup.sh
 /usr/local/apache-tomcat-6.0.26/bin/startup.sh
 /usr/local/tomcat6/bin/startup.sh



3. find 搜索硬盘查询文件

  由于此命令是从硬盘中查找,所以查询速度要比以上两个命令慢很多。不过它的参数不少,可以实现更详细的查询。

  实践:

  [root@wxr /]# find / -name httpd.conf
  /etc/httpd/conf/httpd.conf
  /usr/local/apache2/conf/httpd.conf
  /usr/local/apache2/conf/original/httpd.conf
  /usr/local/httpd-2.2.4/docs/conf/httpd.conf


  [root@wxr /]# find / -name startup.sh
  /usr/local/apache-tomcat-6.0.26/bin/startup.sh
  /usr/local/tomcat6/bin/startup.sh


Tips:

以上命令查询文件时,locate和find命令的文件名处都可以使用通配符(忘记文件名字时候这方法很有用哦~),如:

 

[root@wxr /]# locate *.conf

[root@wxr /]# find /etc -name *.conf

 

 


Logo

更多推荐