zoukankan      html  css  js  c++  java
  • 查找:find、locate、which、whereis

    有find 、 locate 、 which 、 whereis

    一、find

    命令格式:[root@localhost ~]# find 搜索路径 [选项] 搜索内容

    find是比较特殊的命令,它有两个参数:

    • 第一个参数用来指定搜索路径;
    • 第二个参数用来指定搜索内容。

    1、按照文件名搜索

    find 搜索路径 [选项] 搜索内容

    选项

    • -name: 按照文件名搜索;
    • -iname: 按照文件名搜索,不区分文件名大小;
    • -inum: 按照 inode 号搜索;

    这是 find 最常用的用法。find 命令是完全匹配的,必须和搜索关键字一模一样才会列出。

    2、按照文件大小搜索

    find 搜索路径 [选项] 搜索内容

    选项:

    • -size[+-]大小:按照指定大小搜索文件

    这里的"+"的意思是搜索比指定大小还要大的文件,"-" 的意思是搜索比指定大小还要小的文件。

    find.-size +25k
    #当前目录下大于25KB的文件

    3、按照修改时间搜索

    Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时间,我们也可以按照时间来搜索文件。

    find搜索路径 [选项] 搜索内容

    选项:

    • -atime [+-]时间: 按照文件访问时间搜索
    • -mtime [+-]时间: 按照数据修改时间搜索
    • -ctime [+-]时间: 按照状态修改时间搜索

    这三个时间的区别我们在 stat 命令中已经解释过了,这里用 mtime 数据修改时间来举例,重点说说 "[+-]"时间的含义。

    • -5:代表@内修改的文件。
    • 5:代表前5~6天那一天修改的文件。
    • +5:代表6天前修改的文件。

    4、按照权限搜索

    在 find 中,也可以按照文件的权限来进行搜索。权限也支持 [+/-] 选项。

    find 搜索路径 [选项] 搜索内容

    选项:

    • -perm 权限模式:査找文件权限刚好等于"权限模式"的文件
    • -perm -权限模式:査找文件权限全部包含"权限模式"的文件
    • -perm +权限模式:査找文件权限包含"权限模式"的任意一个权限的文件

    5、按照所有者和所属组搜索

    选项:

    • -uid 用户 ID:按照用户 ID 査找所有者是指定 ID 的文件
    • -gid 组 ID:按照用户组 ID 査找所属组是指定 ID 的文件
    • -user 用户名:按照用户名査找所有者是指定用户的文件
    • -group 组名:按照组名査找所属组是指定用户组的文件
    • -nouser:査找没有所有者的文件

    6、按照文件类型

    选项:

    • -type d:查找目录
    • -type f:查找普通文件
    • -type l:查找软链接文件

    这个命令也很简单,主要按照文件类型进行搜索。在一些特殊情况下,比如需要把普通文件和目录文件区分开,比如需要把普通文件和目录文件区分开,使用这个选项就很方便。

    二、locate

    locate [选项] 文件

    选项:

    • -d或--database= 配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定。
    • --help  在线帮助。
    • --version  显示版本信息。

    说明:locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。因此locate比find快,并不是真正的查找,而是查数据库。locate的查找并不是实时的,而是以数据库的更新为准,所以有时候在即查不到,可以使用locate更新命令将数据库更新一下再查找,一般是系统自己维护,也可以手工升级数据库 ,命令为:

    locate -u 
    locate /etc/my
    #etc目录下所有以my开头的文件
    
    #新增的文件无法locate,需要updatedb更新
    [root@cent6 ~]# touch new.txt
    [root@cent6 ~]# locate new.txt
    [root@cent6 ~]# updatedb
    [root@cent6 ~]# locate new.txt
    /root/new.txt

    三、which

    查找并显示给定命令的绝对路径,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

    [root@localhost oa]# which php
    /usr/local/php7/bin/php

    四、whereis

    搜索出二进制程序、源代码文件和man手册页等相关文件的路径。

    只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

    [root@localhost oa]# whereis mysql
    mysql: /usr/lib64/mysql /usr/local/mysql /usr/share/mysql /usr/local/mysql/bin/mysql
  • 相关阅读:
    【BZOJ 3732】 Network
    【BJOI 2018】 求和
    【HDU 1005】 Number Sequence
    【HDU 3652】 B-numbers
    【SCOI 2007】 降雨量
    BZOJ2186 SDOI2008沙拉公主的困惑(数论)
    #38 游戏(线段树)
    BZOJ2339 HNOI2011卡农(动态规划+组合数学)
    BZOJ3107 CQOI2013二进制A+B(动态规划)
    BZOJ3083 遥远的国度(树链剖分+线段树)
  • 原文地址:https://www.cnblogs.com/pacino12134/p/11523298.html
Copyright © 2011-2022 走看看