首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >umask没有-S选项

umask没有-S选项
EN

Unix & Linux用户
提问于 2018-11-01 14:10:10
回答 1查看 296关注 0票数 0

我试图使用umask -S以符号形式显示当前掩码(在我的系统上按man umask显示,这给了页面BASH_BUILTINS(1))。但umask的行为似乎不像该手册所宣称的那样:

代码语言:javascript
复制
user$ umask
22
user$ umask -S
umask: Improper mask.
user$ umask -p
umask: Improper mask.
user$ which umask
umask: shell built-in command.

我在RHEL6.9上运行csh。类似于umask 022的东西工作得很好。为什么这种行为与命令不同?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-11-01 14:18:07

因为umask改变了shell的内部状态,所以它必须是shell内置的。

POSIX umask内置有一个-S选项,因为这是POSIX的要求,但是csh's没有。您的umask手册页记录了umask bash内置版,而不是csh版。请查看csh手册页以获得umask内置版的文档。

在本世纪,特别是在GNU/Linux系统中,您没有理由要使用csh,但如果必须这样做,您可以始终这样做:

代码语言:javascript
复制
sh -c 'umask -S'

报告该umask的符号形式。

这将报告执行sh的子进程的D13,但是由于umask是在fork上继承的,并且保存在exec上,所以应该与csh's umask相同。

无论如何,返回的umask不会对csh有用,因为csh's umask内置不支持符号形式。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/479131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档