1. 查找
find . -name "*.cpp" -o -name "*.c" #通配符查找
find . -regex ".*\.\(c\|cpp\)" #正则表达式查找
#查找并统计源文件行数
find . -regex ".*\.\(c\|cpp\|h\)" | xargs wc -l
2. 相对/绝对 路径
如果传给 find 的查找目录是相对路劲,find 输出的也是相对路径;
如果传给 find 的是绝对路径,输出也是绝对路径:find `pwd`
3. 执行命令
格式: find *** *** -exec shell-command '{}' \;
find . exec ls -lh '{}' \;
4. 查找深度
-maxdepth n
5. 同时查找多个目录
find dir1 dir2 dir3 -name "*.c"
把目录列表保存到文件: dir_list,然后搜索这些目录:
sed "" dir_list | xargs -I {} find {} -name "*.c" # -I {} 用{}表示输入参数
6. 复制目录结构
摘自:wangmy.blog.51cto.com/4064695/945229
使用find命令可以创建与源一致的目录结构
find /usr/local -type d -exec mkdir -p /tmp/{} \;
这样会保留/usr/local,如果只想保留/usr/local下的目录结构,进入/usr/local再使用命令:
find -type d -exec mkdir -p /tmp/{} \; find后面不写目录就是指当前目录
这条命令将在/tmp目录下创建与 /usr/local一致的目录,此外如果要执行多个命令可以在分号后面继续添加-exec指令,如
find /usr/local -type d -exec mkdir -p /tmp/{} \;-exec print {} \;