微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 在OS X上替换chmod –reference?

我正在尝试将一些jenkins bash脚本从Ubuntu移植到OS X.linux(我认为它最初是GNU)chmod有一个–reference选项,允许从参考文件复制模式.我正在寻找OS X的等效代码,最好不要安装额外的软件包.更好的是跨平台解决方案.

具体片段:

# expand all the templates
find "$OUTPUT_PATH" -name "*.template" | while read FILE ; do
    sed \
        -e "s/%{NAME}/$OPTION_NAME/g" \
        -e "s/%{TITLE}/$OPTION_TITLE/g" \
        -e "s/%{VERSION}/$OPTION_VERSION/g" \
        -e "s/%{WHEN}/$OPTION_WHEN/g" \
            "$FILE" > "${FILE%.*}"
    chmod --reference="$FILE" "${FILE%.*}"
    rm -f "$FILE"
done

[edit] stat -r与保存文件模式的组合是正确的组合,OS X上不存在stat -c

解决方法:

如果您的OS X具有stat命令

# expand all the templates
find "$OUTPUT_PATH" -name "*.template" | while read FILE ; do
    savemod=$(stat -c "%a" "$FILE")
    sed \
        -e "s/%{NAME}/$OPTION_NAME/g" \
        -e "s/%{TITLE}/$OPTION_TITLE/g" \
        -e "s/%{VERSION}/$OPTION_VERSION/g" \
        -e "s/%{WHEN}/$OPTION_WHEN/g" \
            "$FILE" > "${FILE%.*}"
    chmod $savemod "${FILE%.*}"

    rm -f "$FILE"
done

如果它没有-c选项,请在格式化下检查man page of stat.您可以找到获得文件权限/模式的类似方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐