umask
출력을 0022 대신 22로 만들려면 어떻게 해야 합니까 ?
서버 1:
user@vxs-app01> umask
22
서버 2
user@vxs-app02> umask
0022
답변1
나:
1센트가 있는데 0.01달러로 교환하고 싶어요.환전소 계산원:
음…, 똑같습니다.
22와 0022는 (같은 염기를 가지고 있다고 가정한다면) 같은 숫자라는 걸 알고 계시죠? 그렇지 않다면 나는 말한다.
22와 0022는 같은 숫자입니다(같은 염기를 가지고 있다고 가정하는 경우).
이것이 귀하의 질문에 대한 답변입니까? 그렇지 않다면,
당신은 보여
user@vxs-app01$ umask 22
이해했나요? 이런 일이 발생하는 시스템에 대해 알려주십시오.
좋아요, 분명히 당신은 어떤 시스템을 다루고 있는지 우리에게 말하고 싶지 않을 것입니다. 내 대답은 다음 단락에서 내가 논의한 내용 중 하나(또는 조합)를 볼 수 있다는 것입니다.
- 서버 1은 별칭이 지정되었거나
umask
쉘 함수로 재정의되었을 수 있습니다.type umask
확인하려면 입력하세요 . - 두 시스템은 서로 다른 쉘 또는 서로 다른 버전의 쉘을 가질 수 있습니다.
zsh
umask는 앞에 0이 하나만 표시되는 것 같습니다. 그래서 그것은 그것을 설명022
하지만, 그것은 단순한 설명 그 이상입니다22
.csh
그리고tcsh
앞에 0이 없이 umask를 표시하는 것 같습니다. 그러나 이는csh
, , 및 기타 POSIX 친화적인 쉘과는 완전히 다릅니다tcsh
. 서버 1이 실행 중이거나 이면 이를 알 수 있습니다.bash
ksh
zsh
csh
tcsh
- 서버 1은 로컬로 수정된 셸을 실행 중일 수 있습니다.
- 서버 1은 별칭이 지정되었거나
22
가상의 예로 Server1의 출력을 표시하는 경우 를 입력하면 이를 얻을 수 있습니다printf '%o\n' "$(umask)"
. 이는 원시 출력umask
(앞에 0이 있음)을 가져와 기본 형식인 8진수(아니요선행 0). 그런 다음 별칭이나 셸 함수에 넣을 수 있습니다.쉘이 입력한 대로 정확하게 umask 값을 기억하도록 하려면 다음을 수행하십시오.
$ umask 0022 $ umask 0022 $ umask 22 $ umask 22 $ umask 022 $ umask 022
그게 더 어려울 거예요. 더 쉬운 방법은 그것을 마무리하는 쉘 함수를 작성하는 것입니다
umask
. 그게 당신이 원하는 거라면,- 어떻게 하면 좋을지 알아보고,
- 실패할 경우 원하는 것과 시도한 것이 무엇인지 명확하게 설명하기 위해 질문을 편집해 주시면 답변을 드릴 수 있습니다.
더 어렵지만 더 안정적인 방법은 소스 코드를 구해bash
수정하는 것입니다.