encontrar usando expressões regulares e echo

2

Eu tenho cerca de 50 usuários no diretório / home / e eu clonei um repositório git para todos:

Executado em / home / como usuário root:

find . -maxdepth 1 -type d ! -name . -prune -exec git clone /shared/repos/project_xpto.git {}/www/xpto/ \;

Agora preciso definir os proprietários para esses repositórios clonados.

Eu quero executar chown user_folder_name: desenvolvimento -R ./user/www/xpto / para cada repositório clonado.

Então comecei com:

find . -maxdepth 1 -regextype sed -regex "./\([A-Za-z0-9-_]\).*" -type d -exec echo {}/ \;

E eu quero evoluir para:

find . -maxdepth 1 -regextype sed -regex "./\([A-Za-z0-9-_]\).*" -type d -exec chown ${expr1}:development {}/www/xpto/ -R

Eu sei que $ {expr1} não existe. Eu só quero saber como retornar o meu primeiro padrão regexp correspondente, então eu vou ter apenas um nome de usuário, sem pontos e barras, de cada pasta para definir o proprietário.

    
por Luiz Gustavo F. Gama 14.04.2014 / 16:20

1 resposta

0

O find é um requisito real?

Estou pensando em algo como

ls -1d /home/*/www/xpto | awk -F/ '{print "chown",$3":development",$0}'

(Eu estou supondo que seus nomes de usuários são os mesmos dos nomes das pastas pessoais.)

Com o código acima, você obterá os comandos que poderá executar com xargs ou em um script temporário.

    
por 06.08.2014 / 11:21