Linux中find命令用来在指定目录下查找文件。通过组合不同参数可以在linux系统中快速查找需要的文件或目录。

find命令语法

格式:find pathname -options [ -print | -exec | -ok | -print0 ]

pathname: 查找路径设置

options: 选项。每一个选项前面都会带一个横杠-,常用选项如下:

-name:按照文件名来查找文件(大小写匹配敏感),后面跟完整文件名或者文件模式,用双引号包含。
-iname:按照文件名来查找文件(忽略大小写),后面跟文件名或者文件模式,用双引号包含。
-mtime [ n| -n| +n ]:按照文件的更改时间来查找文件,n表示天数。分别表示第n天、n天以内及n天以前。
-type [ f| d| b| c| p| l ]:查找某一类型的文件。比如f-文件,d-目录(常用),b-设备文件,c-字符设备文件,p-管道文件,l-符号链接文件。
-size n[B|KB|M] :查找大小为n的文件,n表示文件大小,可以带单位。比如+100M表示查找大于100M文件,-100M表示查找小于100M文件,100M表示查找等于100M文件
-depth:查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-maxdepth:控制查找目录层级数。如果使用,该参数通常放在第一个。比如在当前目录查找-maxdepth 。
-prune: 不在当前指定的目录中查找,如果同时使用了-depth选项,那么-prune选项会被忽略

-print: find命令将匹配的文件输出到标准输出。

-print0: 可以处理文件名包含空格情况,建议find与xargs结合时使用。

-exec: 对匹配的文件执行该参数所给出的shell命令。相应的目录形式为'command' {} \;,注意{}和\;之间的空格

-ok:  有提示,很少用。

find查找实例

(1)按文件名查找

find /etc -name "*.txt"  #在/etc目录下以.txt后缀的文件
find /etc -name "[A-Z]*" #在/etc目录下查找以大写开头的文件
find /etc -name "host*" #在/etc目录下查找以host开头的文件
find . -maxdepth -type f -name "*.txt" -o -name "*.unl" #查找当前目录下txt和unl后缀的文件
find . -maxdepth -type f \( -name "*.txt" -o -name "*.unl" \) #同上

(2)按时间范围查找

find /home -type f -mtime  #查找/home目录下第5天修改的文件
find /home -type f -mtime - #查找/home目录下5天内修改的文件
find /home -type f -mtime + #查找/home目录下5天前修改的文件
find /home -type f -cmin + #查找/home目录下5分钟前修改的文件

(3)按文件类型查找

find /etc -type f #查找/etc目录下所有的普通文件
find /etc -type d #查找/etc目录下所有的目录
find /etc ! -type d #查找/etc目录下所有非目录类型文件
find /etc -type l #查找/etc目录下所有的符号链接

(4)按文件大小查找

find /home -type f -size 100M #查找/home目录下等于100M的文件
find /home -type f -size +100M #查找/home目录下大于100M的文件
find /home -type f -size -100M #查找/home目录下小于100M的文件

(5)按文件属主、属组查找

find /tmp -user oracle #在/tmp目录下查找属主为oracle的文件
find /etc -group dba #在/etc目录下查找属组为dba的文件

(6)忽略指定目录查找

find -path /opt/bin -prune -o -type f "*.tar.gz" -print #忽略单个目录
find / -maxdepth \( -path /opt -o -path /var \) -prune -o -type f "*.tar.gz" -print #忽略多个目录

find组合命令实例(xargs&exec)

(1)查找并删除

find . -type f -name "*.aud" -print0 | xargs - -n  rm  #查找当前目录下所有的.aud文件并删除
find . -type f -name "*.aud" -exec rm -f {} \; #同上
find . -maxdepth -name "*.tar.gz" -exec rm -rf {} \; #查找当前目录下大于100M的.tar.gz文件包并删除
find /home -type f -mtime + -exec rm {} \; #查找/home目录中更改时间在7日以前的普通文件并删除

(2)查找包含指定内容的文件

find / -type f -print | xargs grep "device" #查找包含device单词的文件
find / -type f -name "*.cfg" -print | xargs grep -l "127.0.0.1" #查找包含127.0.0.1的.cfg后缀的配置文件

(3)查找并替换文件内容

find / -type f -name "*.cfg" -print | xargs sed -i 's/127.0.0.1/192.168.0.1/g' #查找包含127.0.0.1的.cfg后缀的配置文件并将127.0.0.1替换为192.168.0.

(4)查找及其他相关操作

find / -type f -size  -exec ls -l {} \; #查找大小为0的文件,并列出完整路径
find . -type f -name "*.txt" -exec mv {} /tmp \; #将查找到的.txt文件移动到/tmp目录
find /etc -perm - -print | xargs chmod o-w #在/etc目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限
find . -type f -name ".txt" -exec cp {} -C {}.bak \; #备份所有.txt文件。这是使用两个{}的方式

Linux find命令使用方法的更多相关文章

  1. Linux 常用命令使用方法大搜刮

    Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户  开机提示:Login:输入用户名  password:输入口令   用户是系统注册用户成功登陆后,可以进入 ...

  2. 【转】linux tail命令使用方法详解

    原文网址:http://www.111cn.net/sys/linux/46902.htm linux tail命令用途是按照要求将指定的文件的最后部分输出到标准设备,一般是终端,通俗讲来,就是把某个 ...

  3. Linux 常用命令使用方法大搜刮(转)

    1.# 表示权限用户(如:root),$ 表示普通用户  开机提示:Login:输入用户名  password:输入口令   用户是系统注册用户成功登陆后,可以进入相应的用户环境.  退出当前shel ...

  4. Linux核心命令使用方法

    一.Linux命令行常用快捷键 ctrl + c cancel 取消当前的操作 ctrl + l (小写字母L) clear(命令)清空当前屏幕 ctrl + d 退出当前用户 ctrl + r 查找 ...

  5. linux常用命令使用方法

    一.常用的分析服务器日志命令 1.查看有多少个IP访问: awk '{print $1}' log_file|sort|uniq|wc -l 2.查看某一个页面被访问的次数: grep "/ ...

  6. Linux awk命令使用方法

    awk是linux上非常好用的文本处理工具,常用于指定列的处理,包括获取指定列的内容.根据指定列匹配关系输出等文本处理.本文主要描述awk命令的基本语法.正则表达式与操作符的使用.常用内置变量的含义和 ...

  7. Linux sed命令使用方法

    sed(Stream Editor)是Linux中文本处理使用非常广泛的工具,可以对文件内容进行替换.删除.新增.选取特定行等功能.下面通过sed常用实例介绍sed命令的使用方法. sed基本语法 s ...

  8. Linux tcpdump命令使用方法

    tcpdump是Linux上常用的抓包命令,用于截取网络分组并输出分组内容,常用于网络问题分析和排查. tcpdump语法 tcpdump [-i 接口] [-nn] [-w 文件名] [-c 次数] ...

  9. Linux grep命令使用方法

    Linux系统中grep命令可以根据指定的字符串或者正则表达式对文件内容进行匹配查找.在Linux文件处理和SHELL编程中使用广泛. grep基本语法 用法: grep [选项] "字符串 ...

  10. java面试Linux常用命令使用方法大全

    1.# 表示权限用户(如:root),$ 表示普通用户   开机提示:Login:输入用户名   password:输入口令   用户是系统注册用户成功登陆后,可以进入相应的用户环境.   退出当前s ...

随机推荐

  1. unity3d简介

    一.介绍: Unity3D软件:综合开发环境,实时三维动画等类型的多媒体内容,并支持这些内容在Windows.iOS.Android等多种平台的发布. Mono:脚本编程基于Mono技术,可使用Jav ...

  2. boost serialize序列化

    boost序列化 #ifndef FND_SERI_H #define FND_SERI_H #include <boost/archive/text_oarchive.hpp> #inc ...

  3. Java笔试面试题整理第一波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51151650 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  4. 调整SQLServer最大服务器内存参数后实例停止且无法启动

    很显然问题原因是:限制内存并应用后,SQLServer内存不足自动停止,并且无法正常启动之 解决,以最小模式启动SQLServer实例,修改内存限制 --1.开启一个cmd窗口 窗口1,-f最小模式启 ...

  5. C#winform抓取百度,Google搜索关键词结果

    基于网站seo,做了一采集百度和Google搜索关键字结果的采集.在这里与大家分享一下 先看先效果图 代码附加:  1   private void baidu_Click(object sender ...

  6. Python并发编程一(多进程)

    1.背景知识(进程.多道技术) 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一 ...

  7. c#生成cad缩略图或者图片

    struct BITMAPFILEHEADER{public short bfType;public int bfSize;public short bfReserved1;public short ...

  8. SD-WAN供应商列表

    SD-WAN的一个重要思想是,可以使用任何类型的多个物理WAN链路来承载流量,而无需网络工程师进行大量工程设计.相反,SD-WAN解决方案在物理基础设施之上运行覆盖(隧道),抽象出实际链接. SD-W ...

  9. 精通Web Analytics 2.0 (13) 第十一章:变身分析忍者的指导原则

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第十一章:变身分析忍者的指导原则 这个激动人心的一章,分析了几乎所有工作的各个方面. 目标很简单:使用成熟的方法来帮助避免淹死的 ...

  10. requestAnimFrame动画兼容性封装

    window.requestAnimFrame=function(){ return window.requestAnimationFrame ||window.webkitRequestAnimat ...