2015-03-25 81 views
0

我正在通過shell腳本學習我的方式,並使用vim創建了一個。 我使用.sh擴展創建的每個文件似乎都默認爲ls -l命令中的每個組的只讀模式。我試圖用幾個編輯器創建文件,並且在幾個位置上總是得到相同的結果。.sh文件在OS X上默認爲只讀Yosemite

所以我的問題是,我知道我可以chmod的文件,所以我可以執行它們,但是有什麼我可以做的,已經創建它們的可執行文件,而不是改變它們的每一個?

+0

我的猜測是這是一個安全功能,你不能。但我的猜測可能是完全錯誤:) – 2015-03-25 10:18:15

+0

其他文件啓動可執行文件嗎?你有理由相信這僅限於'.sh'文件嗎?至少你可以看看'umask'作爲通過shell工具創建的文件的默認權限(我不知道OS X工具是否使用'umask')。 – 2015-03-25 10:28:25

+0

我從來沒有遇到過這樣的問題,例如,如果這就是你要求的文件'code'.py'code'或'code'.c'code''。 – Cesar 2015-03-25 10:33:02

回答

1

與任何類似UNIX的系統一樣,文件創建受umask影響,該文件在創建文件時會屏蔽文件訪問位。

您可以通過編輯shell啓動配置文件來更改默認的umask,但我不建議這樣做。

如果您想要更改它,以便您創建的所有文件都具有默認設置的可執行位,那麼那些不可執行的文件呢?我一直在編寫shell腳本,運行週期爲chmod,我不覺得這是個大問題。

+0

你只需要設置執行位一次。 – mttrb 2015-03-25 10:31:36

+0

因爲我學習,我必須問:你說的是我可以做出這樣的命令,創建文件並自動更改權限,或者我必須編輯,然後chmod? – Cesar 2015-03-25 10:34:46

+0

@Cesar是的,但是我從來沒有在25年以上的UNIX系統中使用過。 – trojanfoe 2015-03-25 10:35:41

相關問題