[ shell编程 ] find命令使用实例
2017-05-13 19:17
155 查看
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 1。 -prune: 不在当前指定的目录中查找,如果同时使用了-depth选项,那么-prune选项会被忽略
-print: find命令将匹配的文件输出到标准输出。
-print0: 可以处理文件名包含空格情况,建议find与xargs结合时使用。
-exec: 对匹配的文件执行该参数所给出的shell命令。相应的目录形式为'command' {} \;,注意{}和\;之间的空格
-ok: 有提示,很少用。
find查找实例
按文件名查找find /etc -name "*.txt" #在/etc目录下以.txt后缀的文件 find /etc -name "[A-Z]*" #在/etc目录下查找以大写开头的文件 find /etc -name "host*" #在/etc目录下查找以host开头的文件 find . -maxdepth 1 -type f -name "*.txt" -o -name "*.unl" #查找当前目录下txt和unl后缀的文件 find . -maxdepth 1 -type f \( -name "*.txt" -o -name "*.unl" \) #同上
按时间范围查找
find /home -type f -mtime 5 #查找/home目录下第5天修改的文件 find /home -type f -mtime -5 #查找/home目录下5天内修改的文件 find /home -type f -mtime +5 #查找/home目录下5天前修改的文件 find /home -type f -cmin +5 #查找/home目录下5分钟前修改的文件
按文件类型查找
find /etc -type f #查找/etc目录下所有的普通文件 find /etc -type d #查找/etc目录下所有的目录 find /etc ! -type d #查找/etc目录下所有非目录类型文件 find /etc -type l #查找/etc目录下所有的符号链接
按文件大小查找
find /home -type f -size 100M #查找/home目录下等于100M的文件 find /home -type f -size +100M #查找/home目录下大于100M的文件 find /home -type f -size -100M #查找/home目录下小于100M的文件
按文件属主、属组查找
find /tmp -user oracle #在/tmp目录下查找属主为oracle的文件 find /etc -group dba #在/etc目录下查找属组为dba的文件
忽略指定目录查找
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)
查找并删除find . -type f -name "*.aud" -print0 | xargs -0 -n 5000 rm #查找当前目录下所有的.aud文件并删除 find . -type f -name "*.aud" -exec rm -f {} \; #同上 find . -maxdepth 1 -name "*.tar.gz" -exec rm -rf {} \; #查找当前目录下大于100M的.tar.gz文件包并删除 find /home -type f -mtime +7 -exec rm {} \; #查找/home目录中更改时间在7日以前的普通文件并删除
查找包含指定内容的文件
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后缀的配置文件
查找并替换文件内容
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.1
查找及其他相关操作
find / -type f -size 0 -exec ls -l {} \; #查找大小为0的文件,并列出完整路径 find . -type f -name "*.txt" -exec mv {} /tmp \; #将查找到的.txt文件移动到/tmp目录 find /etc -perm -7 -print | xargs chmod o-w #在/etc目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限
相关文章推荐
- Linux学习(Find命令使用实例)
- Linux下find命令使用实例
- linux系统find命令之xargs使用实例分享
- find命令使用及实例
- find命令使用实例
- Find命令使用实例
- Linux下find(文件查找)命令使用实例总结
- Linux下的find 命令使用实例
- 转帖-Linux学习(Find命令使用实例)
- Linux学习(Find命令使用实例)
- linux下find命令使用实例
- FreeBSD下find命令的一些使用方法
- 在Windows命令行(cmd)下,如何使用命令搜索(find)一个文件
- 使用find命令
- linux 之find命令的使用
- Find 命令的使用
- FIND命令使用
- linux find 命令使用例子
- Find命令常见的使用方法
- 15条 linux Find 命令实际使用方法