makefile - 查找:路径必须在表达式之前:'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 上运行了这个。谢谢
解决方案
当在命令行上发现杂散参数时会显示该错误,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
推荐阅读
- javascript - 如果在 reactjs 中条件为真,则播放声音
- c# - 在 ASP Net Core 中使用 hangfire 激活类
- python - Python使用递归函数或其他方法简化嵌套for循环
- javascript - 如何最好地定义多个变量?
- sql - 按索引使用和搜索
- angular - Material Design vs. Angular-Material vs. CSS-Frameworks
- node.js - 使用 multer 上传大文件 (>2GB)
- typescript - 扩展 Typescript 接口时推断泛型参数
- sql - 删除约束 - 关系不存在
- python - 如何从电子邮件正文中获取链接 - Selenium