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つ(または組み合わせ)を見ることができるということです。
- サーバー 1 は、別名が指定されているか、
umask
シェル関数でオーバーライドされている可能性があります。type umask
確認するには入力してください。 - 両方のシステムは、異なるシェルまたは異なるバージョンのシェルを有することができる。
zsh
umaskは前にゼロが1つだけ表示されるようです。だからそれを説明し022
ますが、それは単なる説明以上です22
。csh
そして、tcsh
前にゼロなしで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
修正することです。