With GNU chmod
(on Ubuntu) single command variant (starting in the current directory):
chmod -R -x+X .
Explanation:
-R
- operate recursively
-x
- remove executable flags for all users
+X
- set executable flags for all users if it is a directory
In this case the capital X
applies only to directories because all executable flags were cleared by -x
. Otherwise +X
sets executable flag(s) also if the flag was originally set for any of user, group or others.
With BSD chmod
(which is present on Mac OS X) you have to do it separately in two commands:
sudo chmod -R -x * && sudo chmod -R +X *
(If you want to include hidden files in the main directory as well, you likely need to change * to . (point), but it is untested.)
possible duplicate of How to chmod all directories except files (recursively)?
– G-Man Says 'Reinstate Monica' – 2015-05-07T19:03:16.093