Linux find命令使用方法
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命令使用方法的更多相关文章
- Linux 常用命令使用方法大搜刮
Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入 ...
- 【转】linux tail命令使用方法详解
原文网址:http://www.111cn.net/sys/linux/46902.htm linux tail命令用途是按照要求将指定的文件的最后部分输出到标准设备,一般是终端,通俗讲来,就是把某个 ...
- Linux 常用命令使用方法大搜刮(转)
1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入相应的用户环境. 退出当前shel ...
- Linux核心命令使用方法
一.Linux命令行常用快捷键 ctrl + c cancel 取消当前的操作 ctrl + l (小写字母L) clear(命令)清空当前屏幕 ctrl + d 退出当前用户 ctrl + r 查找 ...
- linux常用命令使用方法
一.常用的分析服务器日志命令 1.查看有多少个IP访问: awk '{print $1}' log_file|sort|uniq|wc -l 2.查看某一个页面被访问的次数: grep "/ ...
- Linux awk命令使用方法
awk是linux上非常好用的文本处理工具,常用于指定列的处理,包括获取指定列的内容.根据指定列匹配关系输出等文本处理.本文主要描述awk命令的基本语法.正则表达式与操作符的使用.常用内置变量的含义和 ...
- Linux sed命令使用方法
sed(Stream Editor)是Linux中文本处理使用非常广泛的工具,可以对文件内容进行替换.删除.新增.选取特定行等功能.下面通过sed常用实例介绍sed命令的使用方法. sed基本语法 s ...
- Linux tcpdump命令使用方法
tcpdump是Linux上常用的抓包命令,用于截取网络分组并输出分组内容,常用于网络问题分析和排查. tcpdump语法 tcpdump [-i 接口] [-nn] [-w 文件名] [-c 次数] ...
- Linux grep命令使用方法
Linux系统中grep命令可以根据指定的字符串或者正则表达式对文件内容进行匹配查找.在Linux文件处理和SHELL编程中使用广泛. grep基本语法 用法: grep [选项] "字符串 ...
- java面试Linux常用命令使用方法大全
1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入相应的用户环境. 退出当前s ...
随机推荐
- 使用UtraISO为U盘制作系统启动盘
安装最新的Ubuntu18.04操作系统: 1.在utraiso软件中打开系统的iso文件: 2.插入U盘: 3.点击[启动]选项卡,选择[写入硬盘映像]: 4.最关键的一步: 刻录校验:打上对勾: ...
- 第9章 应用层(5)_文件传输协议FTP
6. 文件传输协议FTP 6.1 FTP主动和被动模式 (1)FTP协议 ①与其他协议不同,FTP协议在客户端访问FTP服务器时需要建立两个TCP连接.一个用来传输FTP命令,一个用来传输数据. ②在 ...
- Python工程化小结
对如何写一个工业级的Python项目作一个top-down小结. 一.项目结构 顶层结构: 文件夹: model可以是项目中的自定义类: utils是一些工程工具,比如log,tracker log存 ...
- dataset to list
http://www.c-sharpcorner.com/UploadFile/ee01e6/different-way-to-convert-datatable-to-list/ http://ww ...
- mobx.js 使用教程-react
1.store: import { observer } from "mobx-react"; import { observable, action, computed ,aut ...
- MapReduce源码刨析
MapReduce编程刨析: Map map函数是对一些独立元素组成的概念列表(如单词计数中每行数据形成的列表)的每一个元素进行指定的操作(如把每行数据拆分成不同单词,并把每个单词计数为1),用户可以 ...
- Linux Git install
1.介绍 使用Coding管理项目,上面要求使用的git版本为1.8.0以上,而很多yum源上自动安装的git版本为1.7,所以需要掌握手动编译安装git方法. 2.安装git依赖包 yum inst ...
- 24.API爬天气预报数据
1.免费注册API 地址: https://console.heweather.com/ 必须要用IE浏览器打开,注册邮箱激活,打开控制台,如图: 认证key是访问api的钥匙 2.阅读api说明开发 ...
- py库: django (web框架)
http://www.imooc.com/learn/736 Python-走进Requests库 http://www.imooc.com/learn/790 django入门与实践 http:// ...
- jquery轮播图片(无插件简单版)
轮播图(第三版)[2016-2-26] 工作中用的,改写了半透明蒙版,可以兼容ie7 <script type="text/javascript" src="htt ...