您的位置:首页 > 运维架构 > Linux

Linux find命令详解

2015-07-28 14:57 525 查看
15、find查找文件命令

find是针对文件的名字中的关键字、属性、创建时间、修改时间、创建用户等特性去定位某个文件的。

find后紧跟的是要查找目录的绝对路径。

用法:

按照文件名字查找

find fileDirectory -name keywords

fileDirectory:要查找的目录的绝对路径

keywords:查找的关键字,必须用引号引起来

按照文件的类型查找

find fileDirectory -type f/d/l

type :类型,f /d /l代表: 文件/目录/软链接

按照创建时间查找

一天之内创建的文件

find fileDirectory -type f -ctime -1

30分钟前创建的目录

find fileDirectory -type d -cmin +30 -name keywords

c:是create的简写,表示创建

按照修改时间查找

3天前/2分钟内修改过的

find fileDirectory -mtime/mmin +3/-2

m:modify的简写,表示修改。

time:表示天

min:表示分钟)(注:不包括当天、当前分钟)

通过参数exec执行find的后续操作

find fileDirectory -mtime +30 -exec (需要执行的命令,如:rm -rf) {} \;

此处的花括号“{}”代表find出的文件,“ \;”是一个固定写法,代表转义的分号。

1).通过文件名匹配找到以a开头的所有文件,(注:find命令默认会递归查找)

[root@admin home]# find t1/ -name "a*"
t1/a.txt


2).找出当前目录中t1目录下的所有文件(注:这些默认都是会递归的)

[root@admin home]# find t1/ -type f
t1/a.txt
t1/training.tar.gz
t1/dd/b.txt
t1/training.tar.gz


3).找出当前目录中training目录下的所有目录

[root@admin home]# find training/ -type d
training/
training/test
training/test/testtt


4).查找一天以前的以aa开头的文件或目录

[root@admin home]# find t1/ -type f/d -mtime +1 -name "aa*"


5).删除30天前的[文件/目录](首先得找到30天前的文件)

[root@admin home]# find t1/ -mtime +30 [-type f/d] -exec rm -rf {} \;


6).结合管道命令

[root@admin home]# find t1/ -mtime +1 -type f  | ls -al
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: