美文网首页
find 命令

find 命令

作者: chocolee911 | 来源:发表于2018-05-15 22:04 被阅读0次

find 命令功能强大,能根据各种关键字段进行文件的搜索.
find 是直接查找硬盘,所以相较查找数据库的 wherelocate 而言,速度较慢

命令格式:find [PATH] [option-1] [option-2] [action]
可以根据多种条件一起来进行筛选,取交集

1. 按时间进行查找

  • 选项
    • -atime n:查找 n 【天】之前【被读取】的文档
    • -mtime n:查找 n 【天】之前【内容变更】的文档
    • -ctime n:查找 n 【天】之前【inode 内容变更】的文档
    • -mmin n:查找 n 【分钟】之前【内容变更】的文档
    • -newer <filename>: mtime 比某个文件新的文档
find 按时间进行文件查找时,时间是可以带正负号或不带符号的,而且含义各不相同
  • 例子
    • 找出一天内被改动过的文件:find / -mtime 0
    • 找出四天内被改动过的文件:find / -mtime -4
    • 找出四天前的那一天被改动过的文件:find / -mtime 4
    • 找出比 /etc/passwd 新的文件:find / -newer /etc/passwd

2. 按名称、大小、类型进行查找

  • 选项

    • -name < FILENAME>:查找名为 <FILENAME> 的文件(支持通配符,但要加单引号)
    • -size [+-]<SIZE>:查找 [大于/小于] <SIZE> 的文件,可加单位
      • c:byte
      • k:KB
      • M:MB
      • G:GB
    • -type <TYPE>:查找属于 <TYPE> 类型的文件
      • f:普通文件
      • b:存储设备
      • c:字符型设备
      • d:目录
      • l:链接文件
      • s:Socket 文件
      • p:FIFO 文件
  • 例子

    • 查找叫做 passwd 的文件:find / -name passwd
    • 查找文件名包含 bash 的文件:`find /root/ -name 'bash'
    • 查找大于50MB的文件:find /root/ -size +50M
    • 查找链接文件:find /root/ -type l

3. 按所有者、所属组进行查找

  • 选项

    • -user <NAME>:查找属于用户<NAME>的文件
    • -group <NAME>:查找属于群组<NAME>的文件
    • -uid <NUM>:查找 owner 的 UID 为 <NUM> 的文件
    • -gid <NUM>:查找 group 的 GID 为 <NUM> 的文件
    • -nouser:查找 owner 不在/etc/passwd中的文件
    • -nogroup:查找 group 不在/etc/group中的文件
  • 例子

    • 查找 /home 下属于 choco 的文件:find /home -user choco
    • 查找 /home 下,且 owner 的 UID 为 1002 的文件:find /home -uid 1002
    • 查找 owner 不在 /etc/passwd 中的文件:find / -nouser

4. 按权限进行查找

  • 选项
    • -perm <MODE>:查找权限正好
      等于 <MODE> 的文件
    • -perm -<MODE>:查找权限包含 <MODE> 的文件
    • -perm +<MODE>:查找权限被 <MODE> 包含的文件
      ps. 这里的加减号不太好理解,跟直面的含义相反。可以记忆:加号代表 Any,减号代表 All
  • 例子
    • 查找包含 SUID 或 SGID 或 SBIT 权限的文件:find / -perm +7000
    • 查找包含 SUID 或 SGID 权限的文件:find / -perm +6000
    • 查找权限大于 4755 的文件:find / -perm -4755

5. 查找完的动作

  • 选项
    • -exec <command>:使用命令 <command> 来处理查找到的结果(不支持 alias)
  • 例子
    • 查找 /root/ 下文件名包含 bash 的文件,并 ls 以列表模式显示出来:
find  /root/  -name  '*bash*'  -exec  ls  -l  {}  \;
## {}代表找到的结果
## 以分号结尾,但在 bash 环境下分好有特殊含义,所以用反斜杠转义

相关文章

  • find命令、文件名后缀

    目录 一、 find命令二、 文件名后缀 一、 find命令 find命令find命令用来在指定目录下查找文件,其...

  • 文件搜索命令 find grep

    文件搜索命令 find <非常强大> find 命令 find [搜索范围] [搜索条件] 搜索文件 find /...

  • Linux系统find命令使用几点摘录

    find命令选项 Find命令的一般形式: find pathname -options [-print ][-e...

  • MacOS通过命令行搜索文件

    1、通过Find命令搜索文件(注:效果一般) find命令非常高效,并且使用简单。find命令来自unix,mac...

  • linux学习第五周命令与文件权限

    上次内容回顾0.1 find 命令练习0.2 find 命令0.3 find命令及应用场景 今日内容 设置别名2....

  • find--linux

    Linux中find常见用法示例(转) find命令的参数; pathname: find命令所查找的目录路径。例...

  • find 命令与 xargs

    前提 find 可以可 exec 结合执行命令,但是 exec 是要等 find 命令执行完成之后才对 find ...

  • 碎碎念 b

    Linux中的搜索命令 文件搜索命令locate 命令搜索命令 忘记是啥了 find命令,其中find命令有好多后...

  • Linux-文件查找命令find

    find - search for files in a directory hierarchy find命令用于...

  • 每天一个linux命令:find

    时间:2016-11-29 16:04 find命令: find命令用来在指定目录下查找文件 语法: find(选...

网友评论

      本文标题:find 命令

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