find命令用来查找文件(在当前目录以及当前目录的子目录下查找),该命令能够基于正则表达式、目录树深度、文件日期、文件类型等条件查找文件。

一、根据文件名或正则表达式搜索文件

根据名称搜索

用法1: find path -name 'filename'

用法2: find path -iname 'filename'

两种用法都支持通配符,其中,用法1区分大小写, 用法2不区分大小写。实例:查找当前目录下以.sh结尾的文件,命令如下:

find . -name '*.sh'

使用逻辑操作符,按多个条件搜索。-a 和 -and 为逻辑与, -o 和 -or 为逻辑或。

实例:找出当前目录下以.sh结尾并且文件名中含有test的文件,命令如下:

find . -name '*.sh' -a -name '*test*'

使用正则表达式

-regex 选项可以根据正则匹配文件,也可使用-iregex不区分大小写。 实例:查找当前目录下以.sh或.sample结尾的文件,命令如下:

find . -regex '.*\.\(sh\|sample\)$'

拓展:如何查找文件名不包含某个字符的文件

例:查找文件名中不包含test且以.sh结尾的文件,命令如下:

find . -name '.sh' -a ! -name 'test'

例:查找除了.git目录以外,以.sh结尾的文件

find . -name '.git' -prune -o -name '.sh'

二、根据路径搜索

-path可以限制匹配文件的路径以及名称。

实例:查找test目录下,以.sh结尾的文件

find . -name '*.sh' -path '*/test/*'

三、根据目录深度搜索

-maxdepth 和 -mindepth选项可以限制find命令遍历的目录深度。

实例:只在当前目录下查找.sh结尾的文件,命令如下:

find . -maxdepth 1 -name '*.sh'

四、根据文件类型搜索

类UNIX系统中,文件类型包括普通文件、目录、字符设备、符号链接、套接字等。find命令通过-type属性对文件类型进行过滤。

例:查找当前目录下所有的目录,包括下一级子目录,命令如下,

find . -maxdepth 2 -type d

-type选项支持的参数对应的文件类型如下:

文件类型

参数值

普通文件

f

符号链接

l

目录

d

字符设备

c

块设备

b

套接字

s

FIFO

p

五、根据文件的时间戳搜索

类unix系统中每个文件都有三种时间戳

访问时间(-atime、-amin):用户最近一次访问文件的时间。

修改时间(-mtime、-mmin):文件最后一次被修改的时间。

元数据更改时间(-ctime、-cmin) :文件权限、所有权等最后一次被修改的时间。

time结尾的选项,其单位为天,min结尾的选项其单位为分钟,这些选项的值都为一个正负整数, 如+7,表示,7天以前被访问过的文件,-7表示7天以内被访问过的文件,7表示恰好7天前被访问的文件。

例:

1、七分钟以内被修改的文件

find . -mtime -7

2、七天以前被访问过的文件

find . -atime +7

拓展: -newer选项可以比较修改时间

例:找出比test.sh文件的修改时间更近的文件

find . -type f -newer test.sh

六、根据文件大小搜索

# 大于2k的文件

find -type f -size +2k

# 小于2k的文件

find -type f -size -2k

# 等于2k的文件

find -type f -size 2k

支持的单位,除了k之外,还有如下几个

b:块(512字节)

c:字节

w: 字(2个字节)

k:千字节(1024个字节)

M :兆字节(1024k)

G:吉字节(1024M)

七、基于文件权限和所有权搜索

# 打印权限为644的文件

find -type f -perm 644

# 打印用户www拥有的文件

find -type f -user www

八、利用find搜索结果执行相应的命令

删除操作

-delete选项可以直接删除搜索到的文件

find . -name '*test2*' -delete

调用其他命令

-exec选项可以调用其他命令,对搜索结果执行相应的操作

将所有以.sh结尾的文件都合并到all_shell.txt文件中

find . -type f -name '*.sh' -exec cat {} >all_shell.txt \;

命令中的{},find会将它替换为搜索到的文件名。命令结尾的;,是cat命令的结束符,而不是find命令的结束符,所以需要转义。

linux find查找深度,linux find 用法相关推荐

  1. linux全局查找字符串,linux全局搜索命令

    1. 前言 本文主要介绍Linux系统下有哪些全局搜索命令,并讲解相关命令的使用方法与日常使用案例. 我们先来了解一下Linux下主要的5个全局搜索的命令工具.他们分别是find,locate,gre ...

  2. linux全局查找字符串,Linux系统字符串查找命令详细说明

    Linux系统中有时候需要特定的查找字符串的功能.下面由学习啦小编为大家整理了Linux系统字符串查找命令详细说明,希望对大家有帮助! Linux系统字符串查找命令详细说明 1.作用 Linux系统中 ...

  3. linux怎么查找接口,Linux终端命令接口(五)查找与搜索

    一.find  查找  指令将从指定目录下向下递归遍历其各个子目录,将满足条件的文件或目录显示在终端. find [搜索范围][选项]       eg:  find  /home -name &qu ...

  4. 单装linux系统安装教程,深度linux操作系统安装图文教程

    深度linux操作系统怎么安装呢?深度linux操作系统为所有人提供稳定.高效的操作系统,强调安全.易用.美观;具体深度linux操作系统安装方法,我们一起来了解一下. ps:如有其它有关操作系统问题 ...

  5. linux字符查找命令,linux查找文件或字符串的命令

    1. linux下面用于查到的命令有哪些? 是不是有很多呀,这个我还没做过统计和调查,不过这篇博客只介绍grep与find的最基本应用. grep和find功能都是相当的强大,这里也只是介绍这两个命令 ...

  6. linux 批量查找关键词,Linux上批量查找文件里面带的关键字(grep 关键字的用法)

    grep 功能说明:查找文件里符合条件的字符串(同时能匹配正则表达式) 语法:grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C][-d][-e][-f][--help][ ...

  7. linux命令查找软件,linux指令速查器下载

    linux指令速查器最新版(linux指令查询)是一款最新免费包含linux命令查询.搜索功能的linux命令查询软件,它介绍了超过300条指令的用法,对各种用法做了详细的中文说明,非常适合于新手玩家 ...

  8. linux tail 查找字符串,linux 查找包含字符串的文件

    1. 前言 本文主要讲解如何在Linux系统下查找包含指定字符串的文件和搜索相关关键字. 2. linux 查找包含字符串的文件相关实用案例 使用find命令查找文件,并把查找结果重定向至grep程序 ...

  9. linux tail 查找字符串,Linux grep、tail命令的混合使用

    grep Linux grep命令用于查找文件里符合条件的字符串. grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列 ...

最新文章

  1. 微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
  2. java对象重用_JAVA:避免重复的创建对象
  3. mysql不能创建innodb类型表_MYSQL have_innodb DISABLED无法创建innodb类型的表
  4. Container.ItemIndex 获取reapeater行号
  5. Mellanox infinoband RDMA SDP
  6. 联想拯救者Y7000P的一些功能键
  7. 《高性能MySQL》读书笔记
  8. 浏览器可下载的网页链接(百度云链接等),而迅雷(等外置软件)下载失败
  9. 怎么给PDF插入一个文本框写注释?PDF添加注释文本框教程
  10. MF前传——探索者一号液晶屏接线
  11. 12306验证码识别
  12. 小白网安学习日记(2) hacknet游戏(模拟黑客入侵的游戏)
  13. 针式 PKM 个人知识管理软件 视频简介
  14. lamp技术_LAMP技术简介:
  15. 一个web页面的访问的过程
  16. 下着雨的星期天下午,年素清一个人走在外面
  17. vscode html 换行设置
  18. rchlinux安装过程指南
  19. HAproxy配置(三)--ACL
  20. linux服务器安装mysql数据库并通过本地Navicat连接访问远程mysq数据库

热门文章

  1. Java的自定义类加载器及JVM自带的类加载器之间的交互关系
  2. android手机信号强度
  3. Vmware下Ubuntu安装Vmware tools问题/分辨率问题/屏幕显示不全问题
  4. android uid.system,android.uid.system
  5. 论文笔记——chatgpt评估+
  6. 数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化...
  7. 新加坡国大计算机工程专业简绍,新加坡国立大学计算机工程专业毕业生亲临介绍-新加坡教育网...
  8. 全网首发微信二维码引擎Android平台移植
  9. 数字正方形c语言答案,正方形练习题(含答案)
  10. Photoshop滤镜打造线框特效美术字(转)