我正在尝试测试一个文件是否在bash脚本中为所有者设置了execute位。
我知道if [ -x filename ]
检查运行该语句的用户的execute权限,但我需要知道所有者是否拥有该权限。有没有办法指定所有者?
发布于 2011-10-27 08:53:49
您可以使用stat
获取文件权限,然后使用另一个命令解析它们以获取您想要的字符。
stat -c %A someFile
返回类似以下内容:
-rw-rw-r--
EDIT:转到这里:
stat -c %A someFile | sed 's/...\(.\).\+/\1/'
如果所有者已执行,则返回-
或x
。
EDIT 2: For completion:
if [ `stat -c %A someFile | sed 's/...\(.\).\+/\1/'` == "x" ]
then
echo "Owner has execute permission!"
fi
EDIT 3:如果您更喜欢数字权限:
stat -c %a /path/to/a/file
将输出600或700或任何3位基数-8数字。
https://stackoverflow.com/questions/7910582
复制相似问题