实例讲解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 条评论
登录 后参与评论

相关文章

来自专栏XAI

每一个程序员需要了解的10个Linux命令

以下就是今天我们要介绍的Linux命令:  man  touch, cat and less  sort and grep  cut  sed  tar  fi...

1816
来自专栏Youngxj

emlog后台账号密码爆破工具

1912

用head命令查看文本文件的开头

head命令是一个核心Linux实用程序,用于查看文本文件最前面的部分。尽管功能有限,但head命令在许多系统管理和脚本编写任务中都很有用。对于解决文件末尾的类...

793
来自专栏黑白安全

黑客怎样用谷歌查找信息?

黑客去入侵一个网站的时候往往需要搜集它的很多信息,这其中包括利用网站漏洞,社工,还有就是用搜索引擎进行搜索,而常被我们利用的搜索网站——谷歌就是一个非常好的信息...

874
来自专栏吴伟祥

Linux 文件基本属性 转

在当前目录下使用命令: ls -l,即可列出该目录下的所有文件,其第一列的第一个字母就包含了该文件的文件类型:

622
来自专栏Micro_awake web

VSCode配置eslint

在Vue.js项目中,使用的是eslint检查。 而在我写完代码后,cnpm run dev运行命令。。。然后悲剧了,一大堆报错!╮(╯▽╰)╭ 安装插件:Ve...

1.2K5
来自专栏电光石火

springboot 定制个性 banner

使用spring boot 开发时,当程序启动的时候控制台会输出由字符组成的Spring符号。这个是SpringBoot为自己设计的Banner:

501
来自专栏月色的自留地

为OPENCV添加freetype支持并显示中文字符(在mac上编译opencv及contrib库)

  在mac电脑上管理这些gnu的库一般都使用Homebrew,但总有一些你个性化的需要是官方的Homebrew配方无法满足的。比如在屏幕的输出中使用中文字...

751
来自专栏mwangblog

git版本控制

1023
来自专栏生信宝典

一网打进Linux下那些查找命令

查找是我们每天都在做的事情,早上醒来找下手机,出门之前查下公交,坐下之后查下资料,分析数据查下模式。 查找文件,查找信息,查找错误是应用起来更为具体的一些工作,...

48910

扫码关注云+社区