我有大约 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
通过上述代码,您将获得可以使用或在临时脚本中运行的命令。