【问题标题】:Checking file owner permissions检查文件所有者权限
【发布时间】:2011-12-16 04:06:16
【问题描述】:

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

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

【问题讨论】:

    标签: bash permissions


    【解决方案1】:

    您可以使用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 将输出 600 或 700 或任何 3 位 base-8 数字。

    【讨论】:

    • if [ $(stat -c %a some-file) != 600 ];然后……就是我想要的。
    • %a 是一种很棒的格式。检索第 4 个字符的更简单方法是 stat -c %A someFile | cut -c4
    • 它节省了我的时间:)
    猜你喜欢
    • 2018-09-01
    • 2014-08-11
    • 1970-01-01
    • 2016-02-04
    • 2020-06-02
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多