linux中find常用操作

一、简介
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

你可能感兴趣的:(shell)