find: paths must precede expression: `submit_test_IP32_crop.py' find: possible unquoted pattern after predicate `-name'? 上面的命令报这两个错误是什么意思
时间: 2024-09-20 07:15:43 浏览: 56
datastruct1_C语言_SHORTEST-PATHS_shortest path_哈夫曼编码_数据结构算法
这两个`find`命令的错误提示分别说明了问题所在:
1. **`paths must precede expression:` `submit_test_IP32_crop.py'`**
这个错误指出`submit_test_IP32_crop.py`是一个表达式,而不是一个路径。`find`命令需要明确的路径在表达式之前。这表明`submit_test_IP32_crop.py`可能是作为`-name`参数的一部分出现的,而应该放在`find`指令搜索的目录路径之后。正确的格式应该是先提供目录,然后才是`-name`后面的文件模式匹配。
2. **`possible unquoted pattern after predicate `-name'?`**
这个警告提示`-name`后面跟随了一个可能未加引号的模式(pattern),这意味着`find`可能会误解释为一个特殊字符而非文件名。在`find`中,如果模式中有特殊字符(如通配符*、?等),通常需要将其用单引号('`)或双引号(")包围起来,以防解析问题。
为了修复这些问题,你需要调整命令结构,例如确保每个路径都在表达式之前,并对含有特殊字符的文件模式添加引号。试试下面这样的格式(假设你想从`~/e2e/e2e/video`目录开始查找):
```sh
find ~/e2e/e2e/video -type f \( ! -name 'submit_test_IP32_crop.py' \) \( ! -name 'compare_IP32_psnr_UD.sh' \) -name '*IP*' -print0 | xargs -0 rm -rf
```
这里使用了圆括号来区分路径和模式,避免混淆。
阅读全文