You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量为服务器上各项目的顶层.git目录设置chmod 700权限(排除.git内部子目录)

如何批量为服务器上各项目的顶层.git目录设置chmod 700权限(排除.git内部子目录)

你好,这个问题可以通过调整find命令的参数来精准定位顶层的.git目录,避免误修改其内部子目录的权限。这里给你两种可靠的解决方案:

  • 方法一:使用-prune参数(推荐,更高效)
    这个参数的核心作用是:找到目标目录后,立刻停止深入其内部查找,完美匹配你只修改顶层.git的需求。执行以下命令即可:

    find */.git -type d -prune -exec chmod 700 {} \;
    

    具体参数解释:

    • */.git:指定从当前目录下所有直接子项目目录里的.git目录开始查找
    • -type d:确保我们只处理目录类型的文件
    • -prune:找到.git目录后,不再遍历它的子目录,避免选中.git/objects这类内部文件夹
    • -exec chmod 700 {} \;:对每一个找到的目标目录执行chmod 700权限修改
  • 方法二:限制查找深度
    如果你担心*/.git的匹配范围不够灵活,也可以用-maxdepth参数限制查找深度,确保只定位到项目根目录下的顶层.git:

    find . -type d -name ".git" -maxdepth 2 -exec chmod 700 {} \;
    

    参数说明:

    • .:从当前目录开始递归查找
    • -maxdepth 2:限制查找深度为2层(当前目录为第0层,项目目录为第1层,.git是第2层),这样就不会触及.git内部的子目录(那些属于第3层及以上)
    • -name ".git":精准匹配名为.git的目录

验证小技巧

在执行权限修改前,你可以先去掉命令末尾的-exec chmod 700 {} \;,只运行前面的find命令,确认输出结果只有site1/.git、site2/.git这类目标目录,确保无误后再加上权限修改的部分,这样能避免误操作。

备注:内容来源于stack exchange,提问作者Khoi Pro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:19:32