目录
2. find【擅长在目录下找文件】
2.1 常用查询选项option
2.1.1 -name:根据名称匹配
2.1.2 -iname:忽略文件名称大小写
2.1.3 -user:根据所属用户组进行查询
2.1.4 -type:根据文件类型进行查找
2.1.5 -size:根据文件大小匹配
2.1.6 -mindepth n:从第n级目录开始查(从哪个深度开始查找)
2.1.7 -maxdepth n:表示至多搜索到第n-1级子目录(最深深度)
2.1.8 -regex:基于正则表达式匹配文件路径
2.1.9 -iregex:基于正则表达式匹配文件路径(忽略大小写)
2.1.10 -inum:根据文件inode编号查找
2.1.11 -perm:根据文件权限查找
2.1.12 -path:根据路径名称查找指定子目录信息
2.2 根据时间进行查找
2.3对查找的文件如何操作
2.3.1 -print:打印输出。默认的选项,即打印出找到的结果
2.3.2 -exec:对搜索到的文件执行特定的操作
2.3.3 -delete:将查找出的文件删除
2.3.4 -prune:将查找出的文件做裁剪处理
2.3.5 逻辑运算符
2.3.6 xargs:可以将一个命令的输出作为参数发送给另一个命令
2. find【擅长在目录下找文件】
find命令用来指定目录下查找文件
- 语法:find path -option
- 进阶:find path -option [-print] [-exec command] { } \;
- 注意:{}表示查询结果
2.1 常用查询选项option
2.1.1 -name:根据名称匹配
用法举例
0. 前提准备
1. 已知文件名称,进行精确查找
2. 文件名称未知,进行模糊查找
2.1.2 -iname:忽略文件名称大小写
用法举例
1. 忽略文件名称大小写查找
2.1.3 -user:根据所属用户组进行查询
用法举例
2.1.4 -type:根据文件类型进行查找
文件类型
---------------------------
f 表示文件
d 表示目录
c 表示字符设备文件
b 表示块设备文件
l 表示链接文件
p 表示管道文件
用法举例
0. 前提准备
1. 按照文件类型查找
2. 递归查找所有
注: wc -l 统计输出行数
2.1.5 -size:根据文件大小匹配
参数
--------------------------
-n 小于大小为n的文件
+n 大于大小为n的文件
查找数据单位信息
------------------------
c for bytes
k for Kilobytes (units of 1024 bytes)
M for Megabytes (units of 1048576 bytes)
G for Gigabytes (units of 1073741824 bytes)
用法举例
2.1.6 -mindepth n:从第n级目录开始查(从哪个深度开始查找)
用法举例
1. 按照目录层级查找数据
2. 从/etc的第三级子目录开始搜索
2.1.7 -maxdepth n:表示至多搜索到第n-1级子目录(最深深度)
用法举例
1. 按照目录层级查找数据
2.1.8 -regex:基于正则表达式匹配文件路径
用法举例
1.查找/oldboy目录下以.txt结尾的文件
2.1.9 -iregex:基于正则表达式匹配文件路径(忽略大小写)
用法举例
1.查找/oldboy目录下以.txt结尾的文件(忽略大小写)
2.1.10 -inum:根据文件inode编号查找
文件是存储在硬盘上的,硬盘的最小存储单位叫做扇区sector,每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个块block。这种由多个扇区组成的块,是文件存取的最小单位。块的大小,最常见的是
4KB
,即连续八个sector组成一个block。文件数据存储在块中,那么还必须找到一个地方存储文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种存储文件元信息的区域就叫做
inode
,中文译名为索引节点,也叫i节点。因此,一个文件必须占用一个inode,但至少占用一个block。查看indoe编号的命令:
- stat 文件/目录名称 ---- 查看文件/目录inode信息,从而查看文件/目录inode编号
- ls -i ---- 后面不加文件名称,会显示当前目录下所有文件的inode编号
- df -i ---- 查看硬盘分区的inode总数和已使用情况
用法举例
1. 根据文件inode编号查找文件(假设已经知道/oldboy目录下某一文件inode编号为8757)
2.1.11 -perm:根据文件权限查找
文件权限类型
------------------------
读权限(r) :4
写权限(w) :2
执行权限(x):1
没有权限(-):0举例:
------------------------
rw-r---wx :643
-wxr-xr-- :354
r--rwx--x :471------------------------
注:通常使用数字表示权限
用法举例
1. 查找/oldboy目录下权限为644的文件/目录
2.1.12 -path:根据路径名称查找指定子目录信息
用法举例
1. 查找/oldboy/的下级目录下,是否存在名称为file的文件
2.2 根据时间进行查找
UNIX/Linux文件系统每隔文件都有三种时间戳
- 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间
- 修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间
- 变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间
参数
-mtime:根据文件更改时间查找,单位天
- -n n天以内修改的文件
- +n n天以外修改的文件
- n 正好n天修改的文件
-mmin:根据文件更改时间查找,单位分钟
- -n n分钟以内修改过的文件
- +n n分钟之前修改过的文件
用法举例
1. 查询/oldboy目录下30分钟之前修改过的文件
2. 查询/eoldboy目录下30分钟之内修改过的文件
3. 查询/etc目录下,5天以内修改且是目录格式的文件
4. 查询/oldboy目录下,10天之前修改,且是文件格式的文件
2.3对查找的文件如何操作
2.3.1 -print:打印输出。默认的选项,即打印出找到的结果
用法举例
-print是默认选项,通常不使用-print也会输出查找的结果
2.3.2 -exec:对搜索到的文件执行特定的操作
固定格式-exec 命令 {} + 或-exec 命令 {} \; 注:{}表示查询的结果; 代替 + 号,前面附加的 \; 表示转义特殊符号
-ok和-exec的功能一样,只是每次操作都会给用户提示
用法举例
1. 使用-exec命令 将/oldboy目录下文件类型为 f 的文件详细列出来
1. 使用-ok命令 将/oldboy目录下文件类型为 f 的文件详细列出来
2.3.3 -delete:将查找出的文件删除
用法举例
1. 把/oldboy目录中的oldbaby.txt文件删除
2.3.4 -prune:将查找出的文件做裁剪处理
用法举例
1.在/oldboy目录下,查找除/oldboy/02目录中以.txt文件结尾的文件
[root@hero oldboy]# find /oldboy/ -path '/oldboy/02' -prune -o -name "*.txt"
注:-prune用法非常严格,且本人尝试并不好用
1)-prune 必须和 -path,-o 一起使用
2)-prune -o 的顺序不 能调换
3)-name等必须放在-prune -o后面才能使用
2.3.5 逻辑运算符
-a :与(默认情况查询条件之间都是“与”的关系)
-o :或
-not | !:非
用法举例
1. 查找目录/oldboy中以.txt或者以.pdf结尾的文件
2. 查找目录/oldboy下不是以.txt结尾的文件
2.3.6 xargs:可以将一个命令的输出作为参数发送给另一个命令
用法举例
1. 当前目录搜索文件,文件内容包含“oldboy”内容
2. 统计代码行数(grep -v '^$'过滤空白行 wc -l )
2.3 扩展:查找关键字出现的行数
Linux:查看文件内容(cat) 查找关键字(grep) 统计(wc -l)
#cat查找关键字出现的行数
语法:cat 文件 |grep 关键字 |wc -l
-----------------------------------------------------------------
举例:
[root@hero oldboy]# cat /oldboy/oldboy.txt |grep "oldboy" |wc -l
9
Linux系统中的wc(word count)命令的功能为统计中指定文件中的字节数、字数、行数、并将统计结果显示输出
-----------------------------------
#1.命令格式:
wc [选项]文件...
-----------------------------------
#2.命令参数:
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息