【问题标题】:Including and excluding globbing patterns in bash在 bash 中包含和排除通配模式
【发布时间】:2015-07-23 20:38:07
【问题描述】:

我正在尝试使用PHP CodeSnifferPHPCompatibility 标准来测试一组特定的文件。

我目前正在使用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/*

【问题讨论】:

    标签: php bash wildcard glob phpcodesniffer


    【解决方案1】:

    + 而不是\; 结束您的-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 {} +
    

    【讨论】:

      猜你喜欢
      • 2021-10-07
      • 2022-09-26
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多