如何使用 find 以递归方式使所有文件不可执行而不影响目录?

如何使用 find 以递归方式使所有文件不可执行而不影响目录?

我需要从某个目录和子目录中的所有文件中删除可执行标志。目前,我正在通过 2 步流程进行操作

find /dir/ -type f -exec chmod ugo-x {} \;
find /dir/ -type d -exec chmod ugo+rx {} \;

是否可以修改第一行,以便我可以从所有非目录文件中删除 exec 标志?由于这需要定期在许多目录和文件中执行,因此我宁愿不使用会减慢速度的 bash 脚本。

答案1

find ... '!' -type d ...

相关内容