我正在通過shell腳本學習我的方式,並使用vim創建了一個。 我使用.sh
擴展創建的每個文件似乎都默認爲ls -l
命令中的每個組的只讀模式。我試圖用幾個編輯器創建文件,並且在幾個位置上總是得到相同的結果。.sh文件在OS X上默認爲只讀Yosemite
所以我的問題是,我知道我可以chmod
的文件,所以我可以執行它們,但是有什麼我可以做的,已經創建它們的可執行文件,而不是改變它們的每一個?
我正在通過shell腳本學習我的方式,並使用vim創建了一個。 我使用.sh
擴展創建的每個文件似乎都默認爲ls -l
命令中的每個組的只讀模式。我試圖用幾個編輯器創建文件,並且在幾個位置上總是得到相同的結果。.sh文件在OS X上默認爲只讀Yosemite
所以我的問題是,我知道我可以chmod
的文件,所以我可以執行它們,但是有什麼我可以做的,已經創建它們的可執行文件,而不是改變它們的每一個?
與任何類似UNIX的系統一樣,文件創建受umask
影響,該文件在創建文件時會屏蔽文件訪問位。
您可以通過編輯shell啓動配置文件來更改默認的umask
,但我不建議這樣做。
如果您想要更改它,以便您創建的所有文件都具有默認設置的可執行位,那麼那些不可執行的文件呢?我一直在編寫shell腳本,運行週期爲chmod
,我不覺得這是個大問題。
我的猜測是這是一個安全功能,你不能。但我的猜測可能是完全錯誤:) – 2015-03-25 10:18:15
其他文件啓動可執行文件嗎?你有理由相信這僅限於'.sh'文件嗎?至少你可以看看'umask'作爲通過shell工具創建的文件的默認權限(我不知道OS X工具是否使用'umask')。 – 2015-03-25 10:28:25
我從來沒有遇到過這樣的問題,例如,如果這就是你要求的文件'code'.py'code'或'code'.c'code''。 – Cesar 2015-03-25 10:33:02