linux 下的文件搜索、可执行文件搜索

时间:2022-12-30 08:35:43

1. whereis 与 which

  • 速度快,只是模糊查询,例如查询 $ whereis mysql,则会将mysql, mysql.ini, mysql*所在的目录都找出来;

    • whereis 查看的是文件;
    • which 查看可执行文件:$ which xinetd ⇒ /usr/sbin/xinetd
    • which命令的作用是,在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
      • 一次可传递多个参数:
    $ which xinetd pwd
    /usr/sbin/xinetd
    /usr/bin/pwd

2. find

  • 准确,但效率低,
    • grep 是搜索某一文件或某一输出结果的某一行的内容进行匹配;
    • find 则是匹配的文件名;
$ find / -name *xx*
# 只记得部分的文件名;

3. locate

  • 最好,最快,
  • 第一次使用该命令,可能需要更新数据库,

注意和 locale 的区别。

zhang@ubuntu:~$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

references