哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮
有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。
文章目录
1 介绍
find命令用来查找置顶目录下的文件。任何位于参数之前的字符串都会被视为所要查找的目录名。如果使用命令时不设置任何参数,则默认查找当前目录以及子目录。
语法:
find path -option
amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去 n 天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去 n 天内创建的文件
-mtime n : 在过去 n 天内修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket
2 按后缀查文件
1、查询当前目录及子目录下
,所有.log
文件
find . -name "*.log"

忽略大小写,查询当前目录
find ./ -iname "*.log"
2、查询以 txt
以及 pid
结尾的文件
find ./ -name "*.log" -o -name "*.pid"

3正则
find ./ -regex ".*\(\.log\|\.pid\)$"
忽略大小写
find ./ -iregex ".*\(\.log\|\.pid\)$"
4 否定参数
查询nginx日志目录, 不以 .log
结尾的文件
find ./ ! -name "*.log"

5 按类型查找
-maxdepth
: 最大深度限制
-mindepth
: 距离当前目录深度
find . -type 类型参数
类型参数列表:
f 普通文件
l 符号连接
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo
6 按照目录深度搜索
1、搜当前目录,最大深度深度 2 的普通文件
find . -maxdepth 2 -type f

7 按时间搜索
最后一次访问时间:-atime
(天)、 -amin
(分钟)
最后一次修改时间:-mtime
(天)、 -mmin
(分钟)
最后一次变化时间:-ctime
(天)、 -cmin
(分钟
最近七天内被访问过的所有文件
find . -type f -atime -7
恰好在七天前被访问过的所有文件
find . -type f -atime 7
搜索超过七天内被访问过的所有文件
find . -type f -atime +7
找出比access.log修改时间更长的所有文件
find / -type f -newer access.log
2.7 按大小搜索
b: 块(512字节)
c: 字节(512字节)
w: 字(2字节)
k: 千字节
M: 兆字节
G: 吉字节
搜索 >1M 的文件
find . -type f -size +1M
搜索 == 1M 的文件
find . -type f -size 1M
搜索 < 1M 的文件
find . -type f -size -1M
9 删除
参数: -delete
删除当前目录下所有.txt文件
find . -type f -name "*.txt" -delete
10 权限、用户、用户组
10.1 权限
语法:-perm 权限
搜索权限为777的sh脚本
find / -type f -name "*.sh" -perm 777
非777权限的
find / -type f -name "*.sh" ! -perm 777
10.2 用户
语法:-user 用户名
find / -type f -name "*.sh" -user charles
10.3 用户组
语法:-group 用户组
find / -type f -name "*.sh" -group admin
https://wangchujiang.com/linux-command/c/find.html
11 其他
统计代码行数
find /usr/local/docker -name "*.py"|xargs cat|grep -v ^$|wc -l # 代码行数统计, 排除空行
<p><font face="楷体,华文行楷,隶书,黑体" color="red" size="4"><strong>哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮</strong></font></p>
<p><font face="楷体,华文行楷,隶书,黑体" color="blue" size="4"><strong>有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。</strong></font></p>
<p><h3>文章目录</h3><ul><ul><li><a href="#1__5">1 介绍</a></li><li><a href="#2__37">2 按后缀查文件</a></li><li><a href="#3_59">3正则</a></li><li><a href="#4__69">4 否定参数</a></li><li><a href="#5__78">5 按类型查找</a></li><li><a href="#6__97">6 按照目录深度搜索</a></li><li><a href="#7__106">7 按时间搜索</a></li><ul><li><a href="#27__135">2.7 按大小搜索</a></li></ul><li><a href="#9__161">9 删除</a></li><li><a href="#10__170">10 权限、用户、用户组</a></li><ul><li><a href="#101__172">10.1 权限</a></li><li><a href="#102__185">10.2 用户</a></li><li><a href="#103__193">10.3 用户组</a></li></ul><li><a href="#11__204">11 其他</a></li></ul></ul></p>
<h2><a id="1__5"></a>1 介绍</h2>
<p>find命令用来查找置顶目录下的文件。任何位于参数之前的字符串都会被视为所要查找的目录名。如果使用命令时不设置任何参数,则默认查找当前目录以及子目录。</p>
<p>语法:</p>
<pre><div class="hljs"><code class="lang-shell">find path -option
</code></div></pre>
<pre><div class="hljs"><code class="lang-shell">amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去 n 天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去 n 天内创建的文件
-mtime n : 在过去 n 天内修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket
</code></div></pre>
<h2><a id="2__37"></a>2 按后缀查文件</h2>
<p>1、查询<code>当前目录及子目录下</code>,所有<code>.log</code>文件</p>
<pre><div class="hljs"><code class="lang-shell">find . -name "*.log"
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/deed4befe8414f5dbb2821fbb44f9e67.png" alt="image.png" /></p>
<p>忽略大小写,查询当前目录</p>
<pre><div class="hljs"><code class="lang-shell">find ./ -iname "*.log"
</code></div></pre>
<p>2、查询以 <code>txt</code> 以及 <code>pid</code> 结尾的文件</p>
<pre><div class="hljs"><code class="lang-shell">find ./ -name "*.log" -o -name "*.pid"
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/0d2ead34a323d7661620762cef8ee2ca.png" alt="image.png" /></p>
<h2><a id="3_59"></a>3正则</h2>
<pre><div class="hljs"><code class="lang-shell">find ./ -regex ".*\(\.log\|\.pid\)$"
</code></div></pre>
<p>忽略大小写</p>
<pre><div class="hljs"><code class="lang-shell">find ./ -iregex ".*\(\.log\|\.pid\)$"
</code></div></pre>
<h2><a id="4__69"></a>4 否定参数</h2>
<p>查询nginx日志目录, 不以 <code>.log</code> 结尾的文件</p>
<pre><div class="hljs"><code class="lang-shell">find ./ ! -name "*.log"
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/4f82562a52e6bc5fb2ddd85df3537508.png" alt="image.png" /></p>
<h2><a id="5__78"></a>5 按类型查找</h2>
<p><code>-maxdepth</code>: 最大深度限制<br />
<code>-mindepth</code>: 距离当前目录深度</p>
<pre><div class="hljs"><code class="lang-shell">find . -type 类型参数
</code></div></pre>
<p>类型参数列表:</p>
<p>f 普通文件<br />
l 符号连接<br />
d 目录<br />
c 字符设备<br />
b 块设备<br />
s 套接字<br />
p Fifo</p>
<h2><a id="6__97"></a>6 按照目录深度搜索</h2>
<p>1、搜当前目录,最大深度深度 2 的普通文件</p>
<pre><div class="hljs"><code class="lang-shell">find . -maxdepth 2 -type f
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/1856de04df6486067ffc6dd56a35f8b7.png" alt="image.png" /></p>
<h2><a id="7__106"></a>7 按时间搜索</h2>
<p>最后一次访问时间:<code>-atime</code>(天)、 <code>-amin</code>(分钟)<br />
最后一次修改时间:<code>-mtime</code>(天)、 <code>-mmin</code>(分钟)<br />
最后一次变化时间:<code>-ctime</code>(天)、 <code>-cmin</code>(分钟</p>
<p>最近七天内被访问过的所有文件</p>
<pre><div class="hljs"><code class="lang-shell">find . -type f -atime -7
</code></div></pre>
<p>恰好在七天前被访问过的所有文件</p>
<pre><div class="hljs"><code class="lang-shell">find . -type f -atime 7
</code></div></pre>
<p>搜索超过七天内被访问过的所有文件</p>
<pre><div class="hljs"><code class="lang-shell">find . -type f -atime +7
</code></div></pre>
<p>找出比access.log修改时间更长的所有文件</p>
<pre><div class="hljs"><code class="lang-shell">find / -type f -newer access.log
</code></div></pre>
<h3><a id="27__135"></a>2.7 按大小搜索</h3>
<p>b: 块(512字节)<br />
c: 字节(512字节)<br />
w: 字(2字节)<br />
k: 千字节<br />
M: 兆字节<br />
G: 吉字节</p>
<p>搜索 >1M 的文件</p>
<pre><div class="hljs"><code class="lang-shell">find . -type f -size +1M
</code></div></pre>
<p>搜索 == 1M 的文件</p>
<pre><div class="hljs"><code class="lang-shell">find . -type f -size 1M
</code></div></pre>
<p>搜索 < 1M 的文件</p>
<pre><div class="hljs"><code class="lang-shell">find . -type f -size -1M
</code></div></pre>
<h2><a id="9__161"></a>9 删除</h2>
<p>参数:<code> -delete</code></p>
<p>删除当前目录下所有.txt文件</p>
<pre><div class="hljs"><code class="lang-shell">find . -type f -name "*.txt" -delete
</code></div></pre>
<h2><a id="10__170"></a>10 权限、用户、用户组</h2>
<h3><a id="101__172"></a>10.1 权限</h3>
<p>语法:<code>-perm 权限</code></p>
<p>搜索权限为777的sh脚本</p>
<pre><div class="hljs"><code class="lang-shell">find / -type f -name "*.sh" -perm 777
</code></div></pre>
<p>非777权限的</p>
<pre><div class="hljs"><code class="lang-shell">find / -type f -name "*.sh" ! -perm 777
</code></div></pre>
<h3><a id="102__185"></a>10.2 用户</h3>
<p>语法:<code>-user 用户名</code></p>
<pre><div class="hljs"><code class="lang-shell">find / -type f -name "*.sh" -user charles
</code></div></pre>
<h3><a id="103__193"></a>10.3 用户组</h3>
<p>语法:<code>-group 用户组</code></p>
<pre><div class="hljs"><code class="lang-shell">find / -type f -name "*.sh" -group admin
</code></div></pre>
<p>https://wangchujiang.com/linux-command/c/find.html</p>
<h2><a id="11__204"></a>11 其他</h2>
<p>统计代码行数</p>
<pre><div class="hljs"><code class="lang-shell">find /usr/local/docker -name "*.py"|xargs cat|grep -v ^$|wc -l # 代码行数统计, 排除空行
</code></div></pre>
留言