Linux运维find命令常见用法

find ./ -name “d3plot*” | xargs rm

find ./ -type f -name “d3plot*”|xargs rm -rf

测试环境

说明find命令查找文件的常用方法
首先搭建简单的测试环境,在 /server/test/目录下生成格式为01.txt 02.txt ... 20.txt总共20个文件

mkdir -p /server/test
cd /server/test
touch {01..20}.txt
touch {30..40}.php

1)最常用的,根据文件名查找文件

##精确查找17.txt文件
find ./ -type f -name "17.txt"

##查找01.txt-09.txt共计9个文件
find ./ -type f -name “0*”

##查找以txt为后缀的所有文件
find ./ -type f -name "*.txt"

在查找到对应文件后,可以进一步处理,比如删除文件
方法一:find ./ -type f -name “0*”|xargs rm -rf

方法二:find ./ -type f -name “0*” -exec rm -rf {} \;

此处的`{}`是查找到结果的占位符,表示执行删除动作的对象是前面查
找到的文件;如果没有占位符,则会对所有文件执行(删除)操作。
此处的`;`是结束-exec用的,反斜杠`\`则表示转义字符。

上述2个删除方法对下面所有查找结果通用。

2)根据文件类型查找文件

上面的参数-type f限定了查找linux系统中的普通文件。

查找目录  
-type d

符号连接文件
-type l

3)根据文件大小查找文件

此处参数-size +10M表示大于10M的文件;
参数-size -10M表示小于10M的文件;
参数-size 10M表示等于10M的文件;

除了M表示MB
还有G表示GB
小写k表示KB

4)根据文件权限查找

参数-perm表示利用文件属主、属组、其他用户的权限查找需要的文件,例如查找644权限文件

find ./ -type f -perm 644

5)根据文件属主信息查找

此处用到参数-user 属主
假设要查询根目录下属主为Eric的文件

find / -type f -user Eric

6)根据文件的时间戳查找

1)访问文件的时间戳—atime

最后一次读取文件的时间

3天前访问的文件(时间区间)
find ./ -type f -atime +3

正好是3天前(那个时间点)访问的文件
find ./ -type f -atime 3

最近3天内访问的文件(时间区间)
find ./ -type f -atime -3

5天前至3天前的时间段内访问的文件(时间区间)
find ./ -type f -atime -5 -atime +3

2)修改文件内容的时间戳—mtime

3)修改文件属性的时间戳—ctime

参数用法类似于atime,此处不再重复,仅强调二者区别。

mtime--文件内容最后一次被修改
ctime--文件属主、类型、权限、位置最后一次被修改

发表评论