一、简介
find是linux中的查找命令,要查找符合要求的文件,同时可对查找到的文件执行指定操作。
二、常用操作
find是linux中的查找命令,要查找符合要求的文件,同时可对查找到的文件执行指定操作。
二、常用操作
直接上代码,解释看注释。
#!/usr/bin/env bash path='/home/haha/' #查找指定路径下,根据文件名 -name,符合要求的文件 find ${path} -name "*.java" #查找指定路径下,根据文件名(忽略大小写) -iname,符合要求的文件 find ${path} -iname "*.java" #查找指定路径下,根据文件名 -name,符合要求的文件,多个匹配方式, -o find ${path} -name "*.java" -o -name "*.txt" #查找指定路径下,根据路径 -path,符合要求的文件 find ${path} -path "*static*" #查找指定路径下,根据正则 -regex,符合要求的文件,若忽略大小写,则用-iregex find ${path} -regex ".*static.*js$" #取反操作,查找指定路径下,根据文件名 -name,不符合要求的文件 find ${path} ! -name "*.java" #查找出文件后,执行单条命令 find ${path} -name "*.java" -exec grep test {} \; #查找出文件后,执行多条命令,方式一:多个-exce find ${path} -name "*.java" -exec grep test {} \; -exec echo {} \; #查找出文件后,执行多条命令,方式二:通过bash -c find ${path} -name "*.java" -exec bash -c "grep test {} && echo {}" \; #查找出文件后,执行多条命令,方式三:通过while find ${path} -name *.java | while read line ; do result=`cat ${line} | grep test` if [ -n "${result}" ] then echo ${line} echo ${result} fi done