0 bash
有人可以帮我整理一下这个肮脏的单行代码并实现并行性吗?
find . -name "*.php" -exec rename 's/\.php$/.txt/' '{}' \; && chown www-data:www-data -R * && chmod 0755 -R * && find . -name "*.html" -exec rename 's/\.html$/.txt/' '{}' \; && find . -name ".htaccess" -delete
Run Code Online (Sandbox Code Playgroud)
如果并行任务共享相同的I / O通道,则将并行性添加到I / O绑定的任务集只会使其变慢。(提示:他们在这里。)
您可以在这里进行的唯一有用的优化是减少遍历同一目录树的次数。
find . -exec chown www-data:www-data {} \; \
-exec chmod 0755 {} \; \
\( -name "*.php" -exec rename 's/\.php$/.txt/' '{}' \; \
-o -name "*.html" -exec rename 's/\.html$/.txt/' '{}' \; \
-o -name ".htaccess" -delete \)
Run Code Online (Sandbox Code Playgroud)
仍然可以进行调整,但是例如,chown与将五个目录遍历减少为一个相比,避免将文件删除是一个小麻烦。