Como posso definir permissões diferentes para arquivos e pastas separadamente?

2

Desejo aplicar 644 permissões somente para todos os arquivos no diretório atual e 755 permissões somente para subdiretórios no diretório atual com chmod

    
por Victor Bocharsky 09.05.2014 / 12:21

1 resposta

6

Use find :

find ./ -type f -maxdepth 1 -exec chmod 644 {} \;
find ./ -type d -maxdepth 1 -exec chmod 755 {} \;
  • -type f : arquivos
  • -type d : diretórios
  • -maxdepth 1 : primeiro nível (para evitar comportamento recursivo padrão)
  • -exec : execute o comando com argumento do resultado
  • {} será substituído por uma linha dos resultados. tente:

    find ./ -type d -maxdepth 1 -exec echo hi{}low \;
    

    Isso é útil para comandos que têm ordem de argumentos diferentes, como ln :

    ln -s {} ./otherfolder/{}
    

    ou cp

    cp {} ./otherfolder/
    
  • \; para informar -exec é o fim do comando porque você pode adicionar outras opções find depois de -exec (para que elas não se misturem). tente:

    find ./ -type d -maxdepth 1 -exec echo
    

Referência: man find

    
por user.dz 09.05.2014 / 12:41