美文网首页
Liunx 文件查询神器

Liunx 文件查询神器

作者: yxuiang | 来源:发表于2018-10-23 13:53 被阅读0次

    再来谈一谈怎么查找文件。在Linux下面也有相当优异的查找命令。通常find不很常用的,因为速度慢!通常我们都是先使用whereis或者是locate来检查,如果真的找不到了,才以find来查找。为什么呢?因为whereis与locate是利用数据库来查找数据,所以相当快速,而且并没有实际查询硬盘,比较节省时间。
    引用来自: 鸟哥. “鸟哥的Linux私房菜 基础学习篇(第三版)。” Apple Books.

    有趣的博客地址 20ID的博客

    find语法

    find [PATH] [option] [action]
    

    参数:

    😁与时间有关的参数:共有 –atime-ctime-mtime,下面以 -mtime 说明:

    • -mtime n :n 为数字,意义为在 n 天之前的“一天之内”被更改过的文件;
    • -mtime +n :列出在 n 天之前(不含 n 天本身)被更改过的文件名;
    • -mtime -n :列出在 n 天之内(含 n 天本身)被更改过的文件名;
    • -newer file :file 为一个存在的文件,列出比 file 还要新的文件名。

    范例:

    1. 将过去系统上面 24 小时内有改动(mtime)的文件列出

    find / -mtime 0
    

    那个 0 是重点! 0 代表目前的时间,所以,从现在开始到 24 小时前,有改动过内容的文件都会被列出来!

    2. 3天前的 24 小时内有改动(mtime)的文件列出

    find / -mtime 3 
    

    3. 寻找 /etc 下面的文件,如果文件日期比 /etc/passwd 新就列出

    find /etc -newer /etc/passwd
    

    -newer 用在分辨两个文件之间的新旧关系是很有用的!

    4. 找出“4天内被改动过的文件名”呢?

    find /var -mtime -4
    

    5. 那如果是“4 天前的那一天”呢?

    find/var -mtime 4
    

    有没有加上“+, -”差别很大。

    • +4 代表大于等于5 天前的文件名:
    find /var -mtime +4 
    
    • -4 代表小于等于4 天内的文件名:
    find /var -mtime -4
    
    • 4 则是代表4~5 那一天的文件名:
    find /var -mtime 4
    

    🤠与用户或用户组名有关的参数:

    • -uid n :n 为数字,这个数字是用户的账号 ID,即 UID,这个 UID 是记录在/etc/passwd 里面与账号名称对应的数字。
    • -gid n :n 为数字,这个数字是用户组名的 ID,即 GID,这个 GID 记录在/etc/group中~
    • -user name :name 为用户账号名称。例如 dmtsai。
    • -group name:name 为用户组名,例如 users。
    • -nouser :寻找文件的所有者不存在 /etc/passwd 的人。
    • -nogroup :寻找文件的所有用户组不存在于 /etc/group中的文件。当你自行安装软件时,很可能该软件的属性当中并没有文件所有者,这是可能的,在这个时候,就可以使用 -nouser 与 -nogroup 查找。

    范例:

    1. 查找 /home 目录下 属于 vbird 的文件

    find /home -user vbird
    

    2. 查找 /home 目录下 系统中不属于任何人的文件

    find /home -nouser
    

    🤪与文件权限昵称有关的参数:

    • -name filename:查找文件名为 filename 的文件。
    • -size [+-]SIZE:查找比 SIZE 还要大(+)或小(-)的文件。这个 SIZE 的规格有:c: 代表 byte,k: 代表 1024bytes。所以,要找比 50KB还要大的文件,就是“ -size +50k ”。
    • -type TYPE :查找文件的类型为 TYPE 的,类型主要有:一般正规文件(f)、设备文件(b, c)、目录(d)、连接文件(l)、socket(s)、及 FIFO(p) 等属性。
    • -perm mode :查找文件权限“刚好等于”mode 的文件,这个 mode 为类似 chmod的属性值,举例来说,-rwsr-xr-x 的属性为 4755 。
    • -perm -mode :查找文件权限“必须要全部包括 mode 的权限”的文件,举例来说,我们要查找 -rwxr--r--,即 0744 的文件,使用 -perm -0744,当一个文件的权限为 -rwsr-xr-x,即 4755 […]

    范例:

    1. 查找 /home 目录下 文件名为 government.txt

    find /home -name government.txt
    

    2. 找出 /var 目录下文件类型为 Socket 的文件名有哪些

    find /var -type s
    

    3. 要找出那些怪异的文件,例如 socketFIFO 文件,可以用

    find /var -type p # 或 -type s 来找!
    

    4. 查找文件当中含有 SGIDSUIDSBIT 的属性

    find / -perm +7000
    

    所谓的 7000 就是 ---s--s--t,那么只要含有 s 或 t 的就列出,所以当然要使用 +7000,使用 -7000 表示要含有 ---s--s--t 的所有三个权限,因此,就是 +7000 。

    5. find 支持通配符,查找文件名包含.log的文件

    find / -name "*.log*"
    

    相关文章

      网友评论

          本文标题:Liunx 文件查询神器

          本文链接:https://www.haomeiwen.com/subject/gjbinftx.html