cmdline Unix 권한 비트 계산기

cmdline Unix 권한 비트 계산기

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
)

관련 정보