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

如何仅修改当前目录下文件权限而不改动主目录和子目录内容?

解决方案

正确的find命令

你需要给find添加-maxdepth 1参数限制查找层级,修改后的命令如下:

# 先执行这条确认匹配的文件符合预期,避免误改
find /dir/main_folder -maxdepth 1 -type f -print
# 确认输出的都是目标文件后,执行修改权限的命令
find /dir/main_folder -maxdepth 1 -type f -exec chmod 644 {} \;

请将命令中的/dir/main_folder替换为你实际要操作的目录路径(比如你测试时的/opt/lampp/htdocs)即可。

参数说明

  • -maxdepth 1:限制find仅在指定目录的第一层搜索,不会递归进入任何子目录
  • -type f:仅匹配普通文件,自动过滤掉目标目录本身和子目录,不会修改任何目录的权限

替代方案(shell循环实现)

如果不想使用find命令,也可以用原生shell循环实现相同效果:

for file in /dir/main_folder/*; do
  # 仅当匹配项是普通文件时才修改权限,自动跳过子目录
  [ -f "$file" ] && chmod 644 "$file"
done

原命令问题说明

你之前使用的命令没有添加层级限制,find默认会递归遍历所有子目录下的内容,所以会修改子目录内的文件,不符合需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:15:04