Estou movendo um site de um servidor para outro e o Git não armazena metadados, como permissões de arquivo. Preciso encontrar os diretórios e arquivos que não são 775/664, respectivamente.
No momento, estou usando esta engenhoca de paralelepípedos:
$ find . -type d -exec ls -la {} \; | grep ^d | grep -v ^drwxrwxr-x
$ find . -type f -exec ls -la {} \; | grep -v ^d | grep -v ^-rw-rw-r-- | grep -v '.git'
Embora isso funcione, acho que é bastante hacky. Existe uma maneira melhor de fazer isso, talvez uma maneira canônica, ou devo apenas ser hacky?
Isso está sendo executado em uma versão recente do Ubuntu com as ferramentas GNU no Bash.