find命令和反正则表达式

Dr *_*eco 3 regex exec find inverse

我正在寻找一种表达此命令的方法,该命令排除所有可执行文件,除了那些以".EXE"结尾的文件

我试图使用"find"命令和-exec来解决它.谢谢.

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

find . -type f -regex "[^\.EXE$]" -printf "%f\n" -exec chmod a-x {} +
Run Code Online (Sandbox Code Playgroud)

谢谢任何帮助,Beco.


编辑:

为了找到正则表达式的"逆",我尝试了(更多)研究:

find . -type f ! -regex ".EXE$" -printf "%f\n" -exec chmod a-x {} +
Run Code Online (Sandbox Code Playgroud)

但这也行不通.

Dmi*_*rov 5

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

首先是排除条件.排除"*.EXE"说! -name "*.EXE".在OP条件需要包含来自不同的信中的所有文件\,.,EX.

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

其余的似乎没问题.

这是一个完整的版本

 find -executable -type f ! -name "*.EXE"  -exec chmod a-x {} +
Run Code Online (Sandbox Code Playgroud)