相关疑难解决方法(0)

使用 exec 查找:如何对每个文件执行多步条件操作

我在目录结构中有一堆 php 文件说 /mylibs
我想php -l $file在每个 php 文件上运行一个简单的检查语法错误的文件

find /mylibs -type f -iname "*.php" -exec php -l {} &>/dev/null \;
Run Code Online (Sandbox Code Playgroud)

这是第一步, &>/dev/null 会从 php 中获取详细输出(是否发现语法错误)

php -l如果没有发现错误取决于返回0赖以,我想将它们拷贝到其它目录的发言权/mybin。为了检查这是否按预期工作,我试过

find /mylibs -type f -iname "*.php" -ok php -l {} &>/dev/null ; echo $? \;
Run Code Online (Sandbox Code Playgroud)

但这只是在终端上打印 1 并且不要求确认(-ok 与交互式确认后的 -exec 作用相同)

我在这里做错了什么?这是不可能的吗?

linux bash find

4
推荐指数
1
解决办法
3965
查看次数

标签 统计

bash ×1

find ×1

linux ×1