遍历目录并对 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
使其匹配固定字符串而不是将其视为正则表达式(+
正则表达式中的特殊含义)。
我想遍历一个目录,该目录包含许多包含隐藏文件的子目录。我想循环目录并只打开具有某些权限的文件,在这种情况下为“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
使其匹配固定字符串而不是将其视为正则表达式(+
正则表达式中的特殊含义)。