实例讲解linux强大的find命令

find命令思维导图

Find命令是linux中最常用且重要的命令之一,用于检索文件所在的位置,可以根据多种参数组合进行检索:文件名称,文件权限,文件属组,文件类型,文件大小等。

虽然man find手册有关于find的详细说明,可缺乏实例的说明文档显得干巴巴,对初学者很不友好。导致初学者对于find产生这样的印象:“我知道find很强大,但不知道用在什么场景,该怎么用”。

再强大的工具,只有会用,用得好,才能体现出其价值。

基于此,本文将用实例讲解find命令常用场景:

基本使用

-name 指定文件名

$ find /etc -name passwd
/etc/cron.daily/passwd
/etc/pam.d/passwd
/etc/passwd

find会对指定路径进行递归查找

-iname 忽略大小写

$ find . -iname test.txt
./TesT.txt
./Test.txt
./test.txt

-type d 查找目录

$ find . -type d -name dir1
./dir1

-type f 查找文件

$ find . -type f -name test.php
./test.php

查找某一类文件

$ find . -type f -name "*.php"
./test.php
./test1.php
./test2.php

* 表示通配符

根据权限查找

查找权限为777的文件

$ find . -type f -perm 777 -print

-print 将结果打印

查找权限不为777的文件

$ find . -type f ! -perm 777

! 反选

查找可执行文件

即查找所有用户都拥有x权限的文件

$ find . -type f -perm /a=x

找到777权限的文件并将其改为644

$ ll
-rwxrwxrwx 1 root root 0 9月  17 22:01 test

$ find -type f -perm 777 -print -exec chmod 644 {} \;
./test

$ ll                                                 
-rw-r--r-- 1 root root 0 9月  17 22:01 test

查找并删除单一文件

$ find . -type f -name "test" -exec rm -f {} \;

查找并删除多个文件

$ find . -type f -name "*.txt" -exec rm -f {} \;

查找所有空文件

$ find /tmp -type f -empty

查找所有空目录

$ find /tmp -type d -empty

查找所有隐藏文件

$ find . -type f -name ".*"

根据属主/属组查找文件

$ find /etc -user senlong -name passwd

$ find /etc -user root -name passwd   
/etc/cron.daily/passwd
/etc/pam.d/passwd
/etc/passwd

$ find /etc -group root -name passwd
/etc/cron.daily/passwd
/etc/pam.d/passwd
/etc/passwd

根据文件时间查找

50天前修改过的文件

$ find . -mtime 50

大于50天小于100天前修改过的文件

$ find . -mtime +50 -mtime -100

根据文件大小查找

查找大小为50M的文件

$ find / -size 50M

查看大小为50M至100M的文件

$ find / -size +50M -size -100M

查找大于100M的log文件并删除

$ find / -type f -name "*.log" -size +100M -exec rm {} \;

思维导图源文件下载

参考链接

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏魏艾斯博客www.vpsss.net

php 环境上传文件超过容量被限制怎么办

经常有网友在 php 环境中上传大容量文件,会遇到系统提示文件大小超过容量被限制上传,如果是老鸟自然会知道如何解决,对于新手来说这就好像学习 php 建站过程中...

844
来自专栏魏艾斯博客www.vpsss.net

php 环境上传文件超过容量被限制怎么办

经常有网友在 php 环境中上传大容量文件,会遇到系统提示文件大小超过容量被限制上传,如果是老鸟自然会知道如何解决,对于新手来说这就好像学习 php 建站过程中...

1294
来自专栏IMWeb前端团队

解放双手:如何在本地调试远程服务器上的Node代码

写在前面 谈到node断点调试,目前主要有三种方式,通过node内置调试工具、通过IDE(如vscode)、通过node-inspector,三者本质上差不多。...

3908
来自专栏前端杂货铺

深入seajs源码系列一

简述         前端开发模块化已经是大势所趋,目前模块化的规范有很多,众所周知的有commonJS,Module/Wrappings和AMD等,而且ES6...

2949
来自专栏王二麻子IT技术交流园地

Linux常用命令100个用法

平时用linux时,我有一个习惯就是把遇到的,比较有用,并且容易忘的命令,放到一个文本文件中,没事的时候可以拿出来看看,这样可以加深映像,时间长了这些命令的用法...

1925
来自专栏狂码一生

CentOS安装Nginx

一、gcc安装     yum -y install gcc-c++ 二、pcre pcre-devel安装     yum -y install pcre ...

44613
来自专栏FreeBuf

打造一款属于自己的远程控制软件(二)

前一篇文章介绍了软件的整体架构,接下来对被控端进行详细讲解,主要介绍被控端各个功能模块的关键技术以及开发过程中遇到的坑,希望对各位读者有借鉴作用。 被控端工作流...

2875
来自专栏Aloys的开发之路

javadoc相关问题

src源代码生成html格式文档:http://www.cnblogs.com/shenliang123/archive/2012/04/23/2466483....

21710
来自专栏每日一篇技术文章

微信小程序_05 模板的使用

@import "../../templates/reward/reward.wxss";

1191
来自专栏landv

读C#开发实战1200例子记录-2017年8月14日10:03:55

1503

扫码关注云+社区