使用正则表达式和回显匹配进行查找

使用正则表达式和回显匹配进行查找

我有大约 50 个用户/家/目录,并且我已经克隆了一个 git 存储库给每个人:

以 root 用户身份在 /home/ 执行:

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

现在我需要为这些克隆的存储库设置所有者。

我想执行chown 用户文件夹名称:development -R ./user/www/xpto/对于每个克隆的 repo。

然后我开始:

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

find是一个真正的要求吗?

我在想

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

(我假设您的用户名与主文件夹名称相同。)

xargs通过上述代码,您将获得可以使用或在临时脚本中运行的命令。

相关内容