2

У меня около 50 пользователей в каталоге /home/, и я клонировал git-репозиторий для всех:

Выполняется в /home / от имени пользователя root:

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

Теперь мне нужно установить владельцев этих клонированных репозиториев.

Я хочу выполнить chown user_folder_name:development -R ./user/www/xpto/ для каждого клонированного репо.

Тогда я начал с:

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

И я хочу подключиться к:

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

Я знаю, что $ {expr1} не существует. Я просто хочу знать, как вернуть мой первый соответствующий шаблон регулярного выражения, а затем я получу только имя пользователя без точек и слешей из каждой папки, чтобы установить владельца.

1 ответ1

0

find является реальным требованием?

Я думаю что-то вроде

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

(Я предполагаю, что ваши имена пользователей совпадают с именами домашних папок.)

С помощью приведенного выше кода вы получите команды, которые затем сможете запустить с помощью xargs или во временном скрипте.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .