我正在尝试使用PHPCompatibility的PHP CodeSniffer标准来测试一组特定的文件。
我目前正在使用find
来执行此操作。
find ./path1 ./path2 ./path3 ./path4 \
-type f \
-name '*.php' \
-not -path './path4/dontwantthis/*' \
-exec ./vendor/bin/phpcs \
--standard=PHPCompatibility --runtime-set testVersion 5.6 {} \;
然而,这非常缓慢且效率低下,因为脚本的启动针对每个文件运行。
phpcs脚本采用类似./vendor/bin/phpcs --standard=PHPCompatibility --runtime-set testVersion 5.6 <path-of-your-php-files>
的路径,我想找到一种方法来复制带有通配模式的find
内容来代替<path-of-your-php-files>
我遇到的一个主要问题是./path4/*.php
,同时还包括./path4/dontwantthis/*
答案 0 :(得分:0)
使用-exec
代替+
结束\;
选项。这告诉find
使用所有文件名运行命令一次,而不是分别为每个文件名运行。
find ./path1 ./path2 ./path3 ./path4 \
-type f \
-name '*.php' \
-not -path './path4/dontwantthis/*' \
-exec ./vendor/bin/phpcs \
--standard=PHPCompatibility --runtime-set testVersion 5.6 {} +