
Como defino todos os arquivos *.java no diretório atual e todos os seus subdiretórios para terem permissão de leitura para todos os usuários?
Também quero definir todos os arquivos de pelo menos 1 kilobyte de tamanho no diretório atual e todos os subdiretórios para terem um grupo de administradores.
Responder1
Alternativa:Para definir a permissão de leitura para todos os arquivos .java no diretório atual, use este comando:
chmod -R 444 *.java
Para definir todos os arquivos de pelo menos 1 kilobyte de tamanho no diretório atual e todos os subdiretórios para terem um grupo de administradores.
find /yourdirectorypath -size +1k -exec chgrp admin {} \;
Observação:o "-R" indica recursivo que também cobrirá seus subdiretórios
Responder2
Como defino todos os arquivos *.java no diretório atual e todos os seus subdiretórios para terem permissão de leitura para todos os usuários?
No bash ≥4,0 e zsh:
chmod a+r ./**/*.java
Em qualquer sistema compatível com POSIX (ou seja, qualquer variante unix não antiga e mais):
find . -name '*.java' -exec chmod a+r {} +
Defina todos os arquivos de pelo menos 1 kilobyte de tamanho no diretório atual e todos os subdiretórios para terem um grupo de administradores.
Em zsh:
chgrp admin ./**/*(.L+1023)
Em qualquer sistema compatível com POSIX:
find . -type f -size +1023c -exec chgrp admin {} +
Responder3
Use localizar e xargs
find . -name \*.java | xargs chmod o+r
ou
find . -name \*.java -print0 | xargs -0 chmod o+r
A segunda versão lida com espaços em nomes de arquivos ou diretórios.
Talvez seja necessário corrigir as permissões do diretório também.
find . -type d -print0 | xargs -0 chmod o+rx
Você pode evitar a atualização de permissões que já estão corretas. Verifique a página de manual para localizar e revisar a seção sobre permissões.
Responder4
Para definir a permissão de leitura para todos os arquivos .java no diretório atual, use este comando
chmod +r *.java