检查文件所有者权限

时间:2011-10-27 00:47:14

标签: bash permissions

我正在尝试测试文件是否在bash脚本中为所有者设置了执行位。

我知道if [ -x filename ]会检查运行该语句的用户的执行权限,但我需要知道所有者是否拥有该权限。有没有办法指定所有者?

1 个答案:

答案 0 :(得分:40)

您可以使用stat获取文件权限,并使用其他命令解析它们以获取所需的字符。

stat -c %A someFile

返回类似的内容:

-rw-rw-r--

编辑:在这里:

stat -c %A someFile | sed 's/...\(.\).\+/\1/'

如果所有者已执行,则返回-x

编辑2:为了完成起见:

if [ `stat -c %A someFile | sed 's/...\(.\).\+/\1/'` == "x" ] 
then
  echo "Owner has execute permission!"
fi

编辑3:如果您更喜欢数字权限:

stat -c %a /path/to/a/file将输出60​​0或700或任何3位数的基数为8的数字。