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

Unix下遍历目录并对权限为drwx-----T+的文件执行操作的实现

方案1:修改现有脚本的单层级遍历逻辑

你可以直接用ls -ld加静默grep的返回值做判断,不需要额外嵌套[]语法,grep -q不会输出内容,仅通过状态码返回匹配结果:

#!/bin/sh
cd /z/vendors || exit 1
# 同时匹配隐藏目录和非隐藏目录
for FILE in .[!.]?* *; do
    # 跳过通配符未匹配到的无效条目
    [ -e "$FILE" ] || continue
    # -ld参数只输出目录本身的权限信息,不展开内部内容
    if ls -ld "$FILE" | grep -q "drwx-----T+"; then
        cd "$FILE" || continue
        # 此处写你要执行的操作
        cd ..
    fi
done

方案2:支持多层子目录的更稳妥写法

如果需要遍历所有层级的子目录,直接用find命令比手写递归循环容错性更高:

#!/bin/sh
find /z/vendors -type d -ls | grep "drwx-----T+" | awk '{print $11}' | while read -r DIR; do
    cd "$DIR" || continue
    # 此处写你要执行的操作
    cd - > /dev/null || exit 1
done

注意:上述ls匹配的方案兼容性更好,适配Linux、macOS等不同系统;如果路径中存在空格,执行前不要修改IFS环境变量,避免路径被拆分出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:54:04