I need to strip the executable flag from all files within a certain directory and sub directories. Right now I'm doing it with a 2 step process
find /dir/ -type f -exec chmod ugo-x {} \;
find /dir/ -type d -exec chmod ugo+rx {} \;
Is it possible to modify the first line so that I can strip exec flag from all non-directory files? Since this needs to be done on a fairly regular basis across a lot of directories and files, I'd prefer not to use a bash script which would slow it down.
-type f
predicate already selects all files (or equivalently, all non-directory files, since anything that is a file cannot also be a directory).-type f
predicate tofind
. To me, the wording of this question strongly suggested the latter meaning.