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.
permissions
find
dotancohen
fonte
fonte
-not
não é um padrão POSIX; eles usam em seu!
lugar.Não faço ideia do que seu código estava tentando alcançar. Normalmente, o motivo para encontrar arquivos e diretórios com permissões incorretas é para alterá-los.
Então é isso que estou usando com sucesso no Ubuntu 16.04
Isso demonstra o! símbolo sendo escapado
fonte