Linux 命令 - find

有段时间的笔记了,发出来与大家分享

基本

find 【搜索位置】 【参数】

find /home -name abc[cd]
find /home -iname abc 不区分大小写
find /home -user root 按所有者搜索
find /home -nouser 查找没所有者的文件
  • 匹配任意内容
    ? 匹配任意一个字符
    [] 匹配任意一个中括号内的字符
    如果提示 路径必须在表达式之前,那就要将表达式用引号包含起来,例如 find /home -name "*.h"
find /home -mtime -10 -size -300k

-10 以当天为标志往前10天 到 当天
10 以当天为标准往前10天 的 当天
+10 以当天为标准往前10天 的 之前

-atime [access time] 访问
-ctime [change time] 改变文件属性
-mtime [modify time] 修改文件内容

find ./ -perm 775

-perm 按照文件权限找

-follow 倘若find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-size 按文件大小查找
-1k 小于
1k 等于
+1k 大于
k小写 M大写

-inum 查找特定inode节点的文件

-type 按文件类型找

参数 类型
b 块设备文件
d 目录
c 字符设备文件
p 管道
l 符号链接
f 一般文件

可以联合起来几个条件例如
find /etc -size +100k -a -size -200k -exec ls -lh {} ;
-a and
-o or
-exec ls -lh {} ; 之后同时执行 ls -lh , -exec 和 {} \; 配对出现

结合 wc 统计行数

wc 【参数】【文件】

-c 统计字节数。

-l 统计行数。

-m 统计字符数。这个标志不能与 -c 标志一起使用。

统计符合条件的文件数

find ./ -name "*.h" | wc -l
直接输出答案

统计符合条件的文件的行数 1

find ./ -name "*.h" -exec wc -l {} \;

显示文件名和行数,结果示例

101 ./a.h
80 ./b.h
20 ./c.h
118 ./d.h
91 ./e.h

统计符合条件的文件的行数 2

find ./ -name "*.h" -print0 | xargs -0 wc -l

效果同上,-print0 是用"\0" 分割结果,xargs -0 是把结果分开。find 默认用 -print 输出,会换行。

可以看二进制显示的结果

yping@deepin:~/test$ find ./  -name "*.h" -print  |  xxd  -b
00000000: 00101110 00101111 01100001 00101110 01101000 00001010  ./a.h.
yping@deepin:~/test$ find ./  -name "*.h" -print0  |  xxd  -b
00000000: 00101110 00101111 01100001 00101110 01101000 00000000  ./a.h.
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在linux中可以使用find命令在磁盘上查找文件,功能十分强大,下面总结一些常用的用法 find的基本模式是 f...
    熙熙爸爸阅读 4,404评论 0 0
  • find 命令功能非常的强大,支持的参数很多,这里简单讲解一些平时常用的命令查找命令的基本格式为: ** find...
    hellowenqi阅读 4,108评论 0 2
  • 觉察日记--晚上跟孩子说去洗澡,让他自己脱衣服,磨磨蹭蹭的脱了很长时间,边脱边玩,就觉得他特别像我的拖延,心情就特...
    45d16e1f38a8阅读 1,150评论 0 0
  • 搞的新鲜!情人节挨着年卅。要逆天了? 清晨早起,点开手机,发现屏保变成了粉红色 —— 一看,原来是手机...
    天河水响阅读 2,999评论 3 14
  • 二熊星座阅读 1,059评论 0 0