Unix 권한 비트를 8진수에서 기호 모드로 또는 그 반대로 변환하고 싶습니다. 예를 들어. :
$ mode-encode 'ugo+rwx'
0000
$ mode-decode 0000
ugo+rwx
나는 거기에 있다는 것을 안다온라인 권한 계산기chmod
비트 전달을 양방향으로 지원하지만 기호 모드를 지원하지 않는 명령과 함께 사용할 수 있는 bash 조각이 필요합니다 .
편집: umask가 아닌 권한 비트를 얻고 싶습니다!
답변1
모든 POSIX 셸에서 다음을 호출할 수 있습니다.
savmask=$(umask)
umask someval
umask -S # outputs the symbolic form
umask # outputs the octal form
umask -- "$savmask"
함수에 넣을 수 있습니다
printmask() {
savmask=$(umask) || return
umask -- "$1" || return
umask -S
umask
umask -- "$savmask"
}
또는 umask 저장 및 복원을 방지하려면 하위 쉘을 사용하십시오.
printmask() (
umask -- "${1?Please specify a umask}" || exit
umask -S
umask
)