Além das respostas dadas nos comentários, você também deve observar que o seu script quebrará em qualquer nome de arquivo com espaços neles.
Você pode fazer tudo isso em um único comando usando find
, em vez de tentar analisar uma lista de saída de nomes de arquivos de find
. Muito mais robusto; manipula nomes de arquivos independentemente de caracteres especiais ou espaço em branco.
find "$1" -type f -exec chown "$2" {} \; -exec chmod 600 {} \;
Observe que, se o chown
falhar em um determinado arquivo, o chmod
não será executado nesse arquivo. Esse é provavelmente o comportamento que você quer mesmo.
Como você já executou um comando incorreto que removeu as permissões de execução do diretório "Documentos", é necessário adicionar novamente as permissões de execução:
chmod u+x Documents
Se houver mais diretórios que erroneamente tenham removido as permissões de execução, você poderá corrigi-los com:
find Documents -type d -exec chmod u+x {} \;
Eu não acho que você precisará disso, já que uma vez que as permissões de execução foram removidas de "Documentos", nenhum dos seus subdiretórios estaria acessível, então as permissões de execução não seriam removidas delas.