优秀的编程知识分享平台

网站首页 > 技术文章 正文

Linux运维查找命令——find(linux查找程序位置)

nanyue 2024-09-01 00:00:06 技术文章 5 ℃

有时候我们突然想找一个文件,但是只记住大概文件文件名好像是...或者只记住文件里面有个关键字。这个时候,可利用linux的查找命令查找。

最开始接触Linux的时候,不会使用find,只知道grep,文件里内容、文件名都可以grep,grep确实蛮好的用的,但是如果在大量文件目录找目标文件效率很低,有可能几分钟都找不出结果,对于目前效率来说,几分钟的时间不应该容忍。使用find在十几秒就会找出结果。

需要删除某个目录下的一些文件,但是改目录下的文件很多,有上万个,多到这个时候用ls命令都要等几分钟才会刷完,并且这个时候使用rm -rf删除文件很有可能删除不了,报错删除内容太多了。那该怎么办?当然还是使用find命令,配合命令参数部分就可以删除。

可以说find命令是一个很强大命令,也是一个很有用的命令。

	命令格式:find path -option [ -print ] [ -exec -ok command ] {} \;

主要参数:(比较多)

path 为路径,如果不设置默认是当前路径

-name name 指定要寻找的文件名或者目录,对于文件支持通配符

-print 将符合条件的文件或目录打印出来

-size n 寻找占用n个blok文件

-type x 以文件类型寻找,x的值如下

d目录

f文件

b块

c字符

p管道

-user user 寻找user的所有文件,可以为uid

-group group 寻找用户组为group的文件,可以为gid

-links n 寻找连接数为n的文件

-atime n 寻找n之前存取的文件

-mtime n 寻找n天前被修改的文件

-ctime n 寻找n天前被改变的文件

最长常用的几个参数已加粗

-exec command {} \; 寻找的文件作为command的对象{}里面的command需要的参数,其中command命令可以有很多,就如上面要删除,可以将commond 替换成rm -rf。

find /home/log/ -name "auto*" ! -ctime -7 	-exec rm {} \; 
删除/home/log/ 目录下以auto开头,并删除7天内没有被修改文件
最近发表
标签列表