Продвинутый find
!
find -not -path "./git/*" -not -perm 0777 -exec chmod -R a+rwx {} \;
^^^^^^^^^^^^^^^
Как вы, возможно, и предполагали, да, это так же интуитивно понятно, как и выглядит - find
говорит работать только с файлами и каталогами, которые не имеют разрешения 0777 (или rwxrwxrwx
).
В качестве альтернативы, чтобы избежать чрезмерных вызовов chmod
, вы можете использовать xargs
:
find -not -path "./git/*" -not -perm 0777 -print0 | xargs -0 chmod a+rwx
С некоторыми изменениями xargs
вы запустите chmod
только один раз, сэкономив много времени и повысив общую производительность. См. max xargs
для получения дополнительной информации.