umask에는 -S 옵션이 없습니다

umask에는 -S 옵션이 없습니다

umask -S현재 마스크를 기호적으로 표시 하려고 합니다 ( man umask내 시스템에서는 BASH_BUILTINS(1) 페이지가 표시됩니다). 그러나 umask매뉴얼 페이지에서 주장하는 내용은 아닌 것 같습니다.

user$ umask
22
user$ umask -S
umask: Improper mask.
user$ umask -p
umask: Improper mask.
user$ which umask
umask: shell built-in command.

cshRHEL 6.9에서 실행 중입니다. 비슷한 것이 umask 022잘 작동합니다. 동작이 맨페이지와 다른 이유는 무엇입니까?

답변1

이는 쉘의 내부 상태를 변경 하므로 umask쉘 내장 함수여야 합니다.

POSIX 요구사항이기 때문에 POSIX 쉘 umask에 내장된 옵션이 있지만 s는 그렇지 않습니다. 대신 매뉴얼 페이지에 내장 기능이 문서화되어 있습니다 . 다음 문서는 csh 매뉴얼 페이지를 확인하세요.-Scshumaskumaskbashcsh그것은 umask내장.

이번 세기에 특히 GNU/Linux 시스템에서 이를 사용 하고 싶은 타당한 이유는 없지만 csh, 꼭 필요한 경우 언제든지 다음을 수행할 수 있습니다.

sh -c 'umask -S'

이를 기호 형식으로 보고합니다 umask.

umask이는 실행 중인 하위 프로세스를 보고 하지만 이는 포크에서 상속되고 exec에서 지속되므로 의 프로세스와 동일 sh해야 합니다 .umaskcshumask

어떤 경우든 반환된 내용은 내장 함수가 기호 형식을 지원하지 않기 때문에 umask아무 소용이 없습니다 .cshcshumask

관련 정보