我正在尝试测试文件是否在bash脚本中为所有者设置了执行位.
我知道if [ -x filename ]检查运行该语句的用户的执行权限,但我需要知道所有者是否拥有它.有没有办法指定所有者?
Chr*_*uma 42
您可以使用stat获取文件权限,并使用其他命令解析它们以获取所需的字符.
stat -c %A someFile
Run Code Online (Sandbox Code Playgroud)
返回类似于:
-rw-rw-r--
Run Code Online (Sandbox Code Playgroud)
编辑:你走了:
stat -c %A someFile | sed 's/...\(.\).\+/\1/'
Run Code Online (Sandbox Code Playgroud)
返回-或者x如果所有者已执行.
编辑2:为完成起见:
if [ `stat -c %A someFile | sed 's/...\(.\).\+/\1/'` == "x" ]
then
echo "Owner has execute permission!"
fi
Run Code Online (Sandbox Code Playgroud)
编辑3:如果您更喜欢数字权限:
stat -c %a /path/to/a/file 将输出600或700或任何3位数的基数为8的数字.