📅  最后修改于: 2023-12-03 15:40:23.764000             🧑  作者: Mango
有时候我们需要查找子目录以及子目录中的文件和文件夹的更改权限。Shell/Bash 提供了一些工具可以用来实现这个目的。
可以使用 find
命令来查找具有更改权限的子目录。以下是查找当前目录下所有具有更改权限的子目录的命令:
find . -type d -perm -g=w
解释:
.
:表示当前目录。-type d
:表示只查找目录。-perm -g=w
:表示匹配组用户可写权限。更改权限是指有一个或多个权限被更改,而不是更改文件的所有权限。这个命令将返回当前目录下所有具有更改权限的子目录。
stat
命令可以用来显示文件和目录的详细信息,包括权限。以下是查找当前目录下所有具有更改权限的子目录的命令:
for dir in $(find . -type d); do
stat -c "%a %n" "$dir"|grep -q 2[0-7][01]
if [ $? == 0 ]; then
echo "$dir"
fi
done
解释:
for dir in $(find . -type d)
:遍历当前目录下的所有子目录。stat -c "%a %n" "$dir"
:显示目录 $dir
的权限和路径。grep -q 2[0-7][01]
:匹配具有组用户可写权限的目录。if [ $? == 0 ]
:如果找到匹配项,则返回 0
。echo "$dir"
:输出匹配的目录路径。这个命令将返回当前目录下所有具有更改权限的子目录。
使用 find
或 stat
命令可以找到具有更改权限的子目录。具体哪种方法更好取决于您的具体需求。