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

相关文章

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

Linux常用命令100个用法

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

2155
来自专栏西安-晁州

nodejs记录1——async函数

其实手动配置babel环境并不难,记录下步骤: 1、首先npm init创建一个nodejs项目 2、全局安装babel-cli处理工具:npm i babel...

2240
来自专栏狂码一生

CentOS安装Nginx

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

48313
来自专栏Objective-C

iOS-将项目上传到 GitHub 上

3546
来自专栏Aloys的开发之路

javadoc相关问题

欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinn...

1015
来自专栏hbbliyong

错误提示之(MVC3.0):HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确 MVC误设起始页

MVC3.0框架开发项目: 有时在程序运行的时候会出现“HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检...

3876
来自专栏C/C++基础

C++读写文件

[1]C++读取txt文件 [2]C++修改/覆盖指定位置的文件内容或者从某个位置开始截断文件 [3]C++文件读写详解(ofstream,ifstream...

712
来自专栏前端杂货铺

深入seajs源码系列一

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

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

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

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

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

微信小程序_05 模板的使用

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

1691

扫码关注云+社区