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

如何将find找到的权限被拒文件/文件夹通过管道执行sudo chmod o+rw?

解决方法:将权限被拒的路径传递给sudo chmod

要把你现有的命令和sudo chmod o+rw结合起来,核心是把sed提取出的路径作为参数传给chmod。这里推荐两种可靠的实现方式,分别适配不同场景:

方式1:逐路径处理(适配含空格/特殊字符的路径)

find . 2>&1 | sed -n 's/^[^:]*: .\(.*\): Permission denied/\1/p' | xargs -I {} sudo chmod o+rw {}

各部分说明:

  • sed -n:加上-n参数后,sed只会输出我们匹配提取的路径,避免打印多余的无意义行。
  • xargs -I {}:把管道传过来的每一行路径替换为{},逐个执行sudo chmod命令,确保路径里的空格、特殊字符不会被错误拆分。

方式2:批量处理(效率更高,推荐)

如果你的路径没有特殊字符,或者想一次性处理所有目标文件,这种方式更高效:

find . 2>&1 | sed -n 's/^[^:]*: .\(.*\): Permission denied/\1/p' | tr '\n' '\0' | xargs -0 sudo chmod o+rw

各部分说明:

  • tr '\n' '\0':把换行符转换成null字符,避免xargs把路径里的空格误判为分隔符。
  • xargs -0:以null字符作为输入分隔符,完美兼容含空格、特殊字符的路径,同时一次性把所有路径传给chmod,减少命令执行次数。

注意事项

  • 确保你的用户账号拥有sudo权限,执行时可能需要输入密码验证。
  • o+rw是给所有其他用户添加读写权限,如果你需要更严格的权限控制,可以调整为g+rw(给同组用户)或其他权限组合。
  • 如果父目录本身没有访问权限,即使修改了子文件的权限,后续操作仍可能报错,这种情况需要先处理父目录的权限。

内容的提问来源于stack exchange,提问作者caot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:28:46