请求修改Shell脚本:按目录文件数量变更目录所有者
修改Shell脚本实现按目录文件数量设置所有者
原脚本仅能通过目录是否为空设置所有者,现需调整为:目录内文件/条目数量超过4个时,所有者设为satha;数量少于等于4或目录为空时,设为lohith。
修改后的脚本
#!/bin/bash DIR="/home/ec2-user/test1" # 先检查目录是否存在 if [ ! -d "$DIR" ]; then echo "错误:目录 $DIR 不存在" exit 1 fi # 统计目录下所有非.和..的条目数量(包含文件、子目录) ITEM_COUNT=$(ls -A "$DIR" | wc -l) # 若需仅统计文件数量,替换上面的统计命令为: # FILE_COUNT=$(find "$DIR" -maxdepth 1 -type f | wc -l) if [ "$ITEM_COUNT" -gt 4 ]; then chown satha "$DIR" else chown lohith "$DIR" fi
关键修改说明
- 新增目录存在性检查,避免目录不存在时执行后续命令报错
- 替换原空目录判断逻辑,改为统计目录内条目/文件数量:
ls -A "$DIR" | wc -l:统计所有非隐藏、隐藏的条目(排除.和..),与原脚本的判断范围一致- 若需求是仅统计文件,使用
find "$DIR" -maxdepth 1 -type f | wc -l,仅统计当前目录下的普通文件
- 使用
-gt 4进行数值比较,判断数量是否超过4 - 给
$DIR添加双引号,避免目录名包含空格、特殊字符时出现异常
内容的提问来源于stack exchange,提问作者sathavahana
相关产品推荐
相关产品推荐

