遍历目录并对 unix 中具有特定权限的文件执行操作

Loop through a directory and perform action on files with specific permissions in unix

我想遍历一个目录,该目录包含许多包含隐藏文件的子目录。我想循环目录并只打开具有某些权限的文件,在这种情况下为“drwx-----T+”。

我当前的脚本是

#!/bin/sh
cd /z/vendors  #vendors has a list of directories which contain hidden files
for FILE in *; do
    if [ <what should i put here to select files with permission "drwx-----T+">]; then
        cd "$FILE" #and do something here e.g open the hidden files
        cd ..
    fi
done

我不知道要使用什么测试条件,我知道命令 ls -l | grep "drwx-----T+" 会列出我需要的文件,但我如何将其包含在 if 测试

grep 的退出状态指示输入是否与模式匹配。所以你可以用它作为if.

中的条件
if ls -ld "$FILE" | grep -q -F 'drwx-----T+'; then
    # do what you want
fi

-q 选项阻止 grep 打印匹配项,-F 使其匹配固定字符串而不是将其视为正则表达式(+正则表达式中的特殊含义)。