首页 > 解决方案 > 查找:路径必须在表达式之前:'1'

问题描述

我正在尝试运行一个文件调用 buildAll.sh,它应该从基准生成二进制文件并将它们全部放入顶层目录。

#!/bin/sh

find . -d 1 -type d \( ! -name . \) -exec bash -c "cd {} && make clean && make && cp main.bin ../{}.bin && make clean" \;

但是,我收到一个错误:

find: paths must precede expression: `1'

我不确定该命令是如何工作的,以及如何修复它。

我在 Ubuntu 上运行了这个。谢谢

标签: makefilefind

解决方案


当在命令行上发现杂散参数时会显示该错误,1在这种情况下,因为-d(ie -depth) 没有参数。但是,您似乎根本不需要find这里。

for dir in ./*/; do
  make -C "$dir" clean &&
  make -C "$dir" &&
  cp "$dir/main.bin" "$dir.bin" &&
  make -C "$dir" clean
done

推荐阅读