加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 加速使用多个find命令的bash脚本

发布时间:2020-12-14 01:35:14 所属栏目:Linux 来源:网络整理
导读:我有一个bash脚本将项目的一些文件添加到git,然后同步该分支,随着文件数量的增加,我注意到脚本变得慢得多,所以我想知道我是否正在这样做正确的方法. 这是添加文件的脚本部分: echo "Adding files..."find . -name '*.js' -exec git add {} ;find . -name '
我有一个bash脚本将项目的一些文件添加到git,然后同步该分支,随着文件数量的增加,我注意到脚本变得慢得多,所以我想知道我是否正在这样做正确的方法.

这是添加文件的脚本部分:

echo "Adding files..."
find . -name '*.js' -exec git add {} ;
find . -name '*.html' -exec git add {} ;
find . -name '*.css' -exec git add {} ;
find . -name '*.py' -exec git add {} ;
find . -name '*.txt' -exec git add {} ;
find . -name '*.jpg' -exec git add {} ;
find . -name '*.sh' -exec git add {} ;

echo "Commit"
git commit -m "'$1'"

我不确定是否只需要一次调用find就会比拥有所有这些分开的命令更快,但我这样做是因为删除某些类型的文件或添加新文件更简单.

我真的很感激任何建议,以提高效率,以不同的方式使用命令或使用不同的命令是一个完全可以接受的答案.

解决方法

find . ( -name '*.js'   -o 
          -name '*.html' -o 
          -name '*.css'  -o 
          -name '*.py'   -o 
          -name '*.txt'  -o 
          -name '*.jpg'  -o 
          -name '*.sh'   ) -exec git add {} +

这意味着您只扫描一次目录结构,这是加速“多次查找”的主要方式;用’one’替换’multiple’.这是一个POSIX 2008的附加功能,可以让它更像是xargs.如果您无法使用它,请考虑使用-print和xargs(或者,如果您可能在名称中有空格并且您有GNU find和xargs,那么-print0和xargs -0,但如果您有,你(可能 – 但看到评论)也有符号).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读