find grep -E 给出错误:find:未知谓词“-E”

find grep -E 给出错误:find:未知谓词“-E”

我正在运行该命令(在 Ubuntu 18.04 上)

find . \| grep -E "(\_\_pycache__\|\.pyc\|\.pyo$)" \| xargs rm -rf

我得到了错误

find: unknown predicate '-E'

我以前在安装时运行过此命令,没有任何问题。

答案1

我以前在安装时运行过这个命令,没有问题

我不知道这是怎么可能的,因为这是一个完全错误的语法 - 你应该使用|,而不是\|,而且也没有必要单独使用greprm。它应该是:

find . \( -name "*__pycache__" -o -name "*.pyc" -o -name "*.pyo" \) -delete

答案2

使用 extglob 和 globstar 删除文件:

$ rm -i **/@(__pycache__|*.pyc|*.pyo)

相关内容