一、find的作用?
•递归式查找
•根据预设的条件递归查找对应的文件
二、find使用方法
– find [目录] [条件1]…
-type 类型(f文本文件、d目录、l快捷方式)
代码如下:
-
<span style="color:#000000"><code class="language-c"><span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>home <span style="color:#669900">-</span>type f
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>root <span style="color:#669900">-</span>type f
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>home <span style="color:#669900">-</span>type d
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>root <span style="color:#669900">-</span>type d
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>etc <span style="color:#669900">-</span>type l
-
</code></span>
-name “名称”
代码如下:
-
<span style="color:#000000"><code class="language-c"><span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>etc<span style="color:#669900">/</span> <span style="color:#669900">-</span>name <span style="color:#669900">"*.conf"</span>
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>etc<span style="color:#669900">/</span> <span style="color:#669900">-</span>name <span style="color:#669900">"*tab*"</span>
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>etc<span style="color:#669900">/</span> <span style="color:#669900">-</span>name <span style="color:#669900">"passwd"</span>
-
</code></span>
-size +或-文件大小(k、M、G)
-
<span style="color:#000000"><code class="language-c"><span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>boot<span style="color:#669900">/</span> <span style="color:#669900">-</span>size <span style="color:#669900">+</span><span style="color:#98c379">20</span>M
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>boot<span style="color:#669900">/</span> <span style="color:#669900">-</span>size <span style="color:#669900">-</span><span style="color:#98c379">10</span>M
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>boot<span style="color:#669900">/</span> <span style="color:#669900">-</span>size <span style="color:#669900">+</span><span style="color:#98c379">300</span>k
-
</code></span>
-user 用户名 #按照数据的所有者
-
<span style="color:#000000"><code class="language-c"><span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># useradd wxr #新建用户
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>home <span style="color:#669900">-</span>user zhangsan
-
</code></span>
-mtime 修改时间 #都是过去时间
-
<span style="color:#000000"><code class="language-c">三个月之前的数据:
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>root <span style="color:#669900">-</span>mtime <span style="color:#669900">+</span><span style="color:#98c379">90</span>
-
查找最近一天内:
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span>root <span style="color:#669900">-</span>mtime <span style="color:#669900">-</span><span style="color:#98c379">1</span>
-
</code></span>
三、find高级使用处理查找的内容
案例:查找并处理文件
1. 利用find查找所有用户 student 拥有的必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中
-
<span style="color:#000000"><code class="language-c"><span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># useradd student
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># mkdir <span style="color:#669900">/</span>root<span style="color:#669900">/</span>findfiles
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span> <span style="color:#669900">-</span>user student <span style="color:#669900">-</span>type f
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># find <span style="color:#669900">/</span> <span style="color:#669900">-</span>user student <span style="color:#669900">-</span>type f <span style="color:#669900">-</span>exec cp <span style="color:#999999">{</span><span style="color:#999999">}</span> <span style="color:#669900">/</span>root<span style="color:#669900">/</span>findfiles<span style="color:#669900">/</span> \<span style="color:#999999">;</span>
-
<span style="color:#999999">[</span>root@localhost <span style="color:#669900">~</span><span style="color:#999999">]</span># ls <span style="color:#669900">-</span>A <span style="color:#669900">/</span>root<span style="color:#669900">/</span>findfiles<span style="color:#669900">/</span>
-
</code></span>
• 操作方法:
find [范围] [条件] -exec 处理命令 {} ;
– -exec :额外操作开始
– {} :find查询的结果
– ; :额外操作结束
– 每找到一个符合条件的数据,直接传输给-exec,每次只传输一个参数