5

我正在寻找一种表达此命令的方法,该命令排除所有可执行权限,但以“.EXE”结尾的文件除外

我正在尝试使用“find”命令和-exec来解决它,拜托。谢谢。

我尝试过的命令和其他版本的命令不起作用:

find . -type f -regex "[^\.EXE$]" -printf "%f\n" -exec chmod a-x {} +

感谢任何帮助,贝科。


编辑:

为了找到正则表达式的“逆”,我在(更多)研究之后尝试过:

find . -type f ! -regex ".EXE$" -printf "%f\n" -exec chmod a-x {} +

但这也没有用。

4

2 回答 2

8

您的命令可以解决的问题很少

首先排除条件。要排除“*.EXE”,请说! -name "*.EXE". OP 中的条件采用所有包含不同于 、 或 的\字母.E文件X

另一件事是,对于这个特定目的,只检查可执行文件是有意义的。这可以通过-executable谓词来完成。

其余的似乎还可以。

这是一个完整的版本

 find -executable -type f ! -name "*.EXE"  -exec chmod a-x {} +
于 2012-05-03T18:18:49.963 回答
-1

如果find . -name "*.EXE" -exec chmod a-x {} +不起作用,那么我只需在脚本中“查找 .-name ..-print”并编辑脚本。

于 2012-05-03T18:14:54.740 回答