出于性能方面的原因,将-exec操作符放的越靠后越好. 这样可以避免不要的进程
find命令需要读取它所搜索的目录树中的每个索引节点,因此最好尽可能地把多个内容组合到单个find命令中. 方法为
find . \( -type d -a -exec chmod 771 {} \; \) -o \( -name "*.BAK" -a -exec chmod 600 {} \; \) -o \( -name "*.sh" -a -exec chmod 755 {} \; \) -o \( -name "*.txt" -a -exec chmod 644 {} \; \) -o \
为了提高find的效率,可以考虑创建自己的find数据库
创建find数据库
cdfind . -print |sed "s@^./@@" > ~/.fastfinddb # 存储~/下的所有文件信息,并替换到./
创建cron定时运行该脚本创建find数据库.
创建一个shell脚本来使用这个数据库
ffind() { egrep "$1" ~/.fastfinddb |sed "s@^@$HOME/@" # 在查询结果前添加$HOME }
原文地址:http://darksun.blog.51cto.com/3874064/1558327