Linux的Find命令
目录
一、查找文件或目录Find
1.1、常用查找类型
1.2、-name参数案列
编辑
编辑
1.3、-size参数案列
1.4、-user参数案列
1.5、 -type参数教案
1.5.1、情况问题
1.6、多条件查找
1.7、空文件
1.8、时间戳
1.9、处理动作
1.10、生产案列
一、查找文件或目录Find
格式
find 查找的范围 类型 查找数据
1.1、常用查找类型
查找类型 | 关键字 | 说明 | |
---|---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 | |
按文件大小查找 | -size | 根据目标文件的大小进行查找,一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括kB(注意k是小写)、MB、GB | |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 | |
按文件类型查找(常用类型) | -type | 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
1.2、-name参数案列
可以用通配符
find /data/ -name "*.txt" #查找/data/目录以.txt结尾的文件;
find /data/ -name "[A-Z]*" #查找/data/目录以大写字母开头的文件;
find /data/ -name "test*" #查找/data/目录以test开头的文件;
1.3、-size参数案列
find /data/ -size +1M #查文件大小,大于1Mb的文件;
find /data/ -size 1M #查文件大小,为1M的文件;
find /data/ -size -1M #查文件大小,小于1Mb的文件;
扩展
dd: 是一个用于复制和转换文件命令
- if=/dev/zero: 指定输入文件(input file)为 /dev/zero。/dev/zero 是一个特殊的设备文件,它只生成空字符(null bytes,即值为 0 的字节)。
- of=ceshi.txt: 指定输出文件(output file)为 ceshi.txt。这意味着 dd 命令将把从 /dev/zero 读取的数据写入到 ceshi.txt 文件中
- count=1: 表示只复制 1 个块(block)的数据。
- bs=10M: 设置块大小(block size)为 10 兆字节(Megabytes)
这种操作通常用于快速生成一个指定大小的文件,尤其是当你需要一个大文件来进行某种测试或填充磁盘空间时。
1.4、-user参数案列
find /home -user 用户名
find /home -user 用户名 -group 组名
1.5、 -type参数教案
文件类型包括:普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)链接文件(l)等
find /boot -type d
find /data/ -type d #查找/data/目录下的文件夹;
find /data/ ! -type d #查找/data/目录下的非文件夹;
find /data/ -type l #查找/data/目录下的链接文件。
find /data/ -type d|xargs chmod 755 -R #查目录类型并将权限设置为755;
find /data/ -type f|xargs chmod 644 -R #查文件类型并将权限设置为644;
扩展1
- 块设备文件(b)是指硬盘、固态硬盘等存储设备
-
字符设备文件(c)是指在I/O传输过程中以字符为单位进行传输的设备文件,如键盘、鼠标、串口和打印机等允许用户以字节为单位与其进行交互的设备。
字符设备的一个主要特点是它们不具备缓冲区,并且通常不支持随机存取。这意味着对这种设备的读写是实时的,并且数据是按照字符流的方式被有序访问的
扩展2
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数
简单的说就是传递数据的,chmod不是管道命令,不能从标准输入设备上读取数据,但是加上xargs就可以了。
find ./ -maxdepth 1 -type f -print0 | xargs -0 ls -lh
-
find ./ -maxdepth 1 -type f -print0
find
:是Linux和Unix系统中用于搜索文件的命令。./
:指定从当前目录开始搜索。-maxdepth 1
:限制搜索深度为1,即只搜索当前目录,不进入任何子目录。-type f
:指定只查找文件,不包括目录。-print0
:以