首页 > 代码库 > 如何提高find的性能

如何提高find的性能

  • 出于性能方面的原因,将-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
     }

如何提高find的性能