Find não funciona com recursão?

1

Eu corri o comando abaixo e notei que ele só fez o mod no primeiro nível (SubDir *) na descoberta e não na subsequência (ChildSubDir *). Eu queria perguntar se é possível recorrer à descoberta e executar com chmod?

Comando executado:

find ./to/path/ -type d -exec chmod 777 {} \;

Diretórios:

DirsRoot
  |-->SubDir1
  |    |-->ChildSubDir1
  |             |-->OtherFile1
  |-->SubDir2
  |    |-->ChildSubDir2
  |             |-->OtherFile2
  |-File1
  |-File2
    
por Eric T 16.12.2015 / 03:32

2 respostas

2

Você pode usar chmod recursivelly sem a necessidade de encontrar. Tem o sinalizador -R . Algo como:

$ cd ./to/path
$ chmod -R 777 *

Isso gerará chmod de todos os arquivos.

Se você quiser apenas diretórios chmod, o comando é:

find /to/path -type d -exec chmod 777 {} +

Mais detalhes aqui

    
por 16.12.2015 / 03:42
1

Eu uso o comando abaixo e funciona.

find /to/path/ -type d -print0 | xargs -0 chmod 777
    
por 16.12.2015 / 10:38

Tags