在 bash 中包含和排除 globbing 模式
Including and excluding globbing patterns in bash
我正在尝试使用 PHPCompatibility standard for 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/*
用 +
而不是 \;
结束你的 -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 {} +
我正在尝试使用 PHPCompatibility standard for 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/*
用 +
而不是 \;
结束你的 -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 {} +