LINUX下find命令小记

find 命令

find 路径 查找条件 查找动作

(1)根据文件名或正则表达式匹配搜索

eg. find /home -name "*.txt" -print

iname表示忽略大小写

a.匹配2个条件

find /home \( -name "*.txt" -a -name "user.*" \) -print

b.匹配2个条件中的一个

find /home \( -name "*.txt" -o -name "user.*" \) -print

c.否定参数 !

eg. find . ! -name "*.txt" -print 匹配不以.txt结尾的文件

(2)根据文件类型搜索

eg.find . -type d -print

文件类型类型参数

普通文件f

符号连接l

目录d

字符设备c

块设备b

套接字s

Fifop

(3)根据文件时间进行搜索

三种时间戳

访问时间(-atime): 用户最近一次访问文件的时间

修改时间(-mtime): 文件内筒最后一次修改的时间

变化时间(-ctime): 文件元数据(metadata, 例如权限或所有权)最后一次改变的时间。

eg. find . -type f -atime -7 -print  最进7天内被访问的所有文件

find . -type f -atime 7 -print 恰好7天前被访问过的所有文件

find . -type f -atime +7 -print 访问时间超过7天

表示分钟的参数:

-amin: 访问时间

-mmin:修改时间

-cmin:变化时间

-newer选项

find . -type f -newer file.txt -print : 打印比file.txt修改时间更长的所有文件

(4)基于文件大小查找

find . -type f -size +2k :大于2K的文件

find . -type f -size 2k  :大小等于2K的文件

find . -type f -size -2k :大小小于2K的文件爱你

常用单位:b(块), c(字节), w(字), k(KB), M(兆), G

(5)删除匹配的文件

-delete 可以用来删除匹配到的文件

find . -type f -name "*.txt" -delete

(5)基于文件权限和所有权查找

find . -type f -perm 644 -print :查找644权限文件

find . -type f -user(用户名或ID) mgx -print

(6)结合-exec 执行命令或动作

-exec选项

eg. find . -type f -user root -exec chown mgx {} \;

(7)结合xargs

eg. find . -type f -name "*.txt" | xargs rm -f

无法预测分割find命令输出结果的是'\n'还是' ';有时很多文件名包含空格符,而xargs则可能会误以为它们是定界符,eg.hell ta.txt

可能会被误认为是hell 和ta.txt.

因此,常使用-print0结合使用

eg. find . -type f -name "*.txt" -print0 | xargs rm -f


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章