Shell-Script
如何檢查和分配 shell 腳本文件的執行權限?
我正在尋找編寫一個 .sh 腳本來為目前目錄和子目錄中尚未分配執行權限的所有 .sh 文件分配執行權限。
只需一個命令,我就可以輕鬆地為目前目錄及其子目錄中包含的所有 .sh 文件分配執行權限:
find -type f -iname '*.sh' -exec chmod +x {} \;
上述命令將為位於目前目錄和子目錄中的所有 .sh 文件分配執行權限。但是我只需要條件語句來檢查這個 .sh 文件是否被分配了執行權限?如果不是,則對該文件執行分配執行權限命令。
你的回答會很有幫助,我會很感激你的回答。
我認為您正在尋找
-executable
選項,用-not
$ ls -l -rwxrwxr-x ... cmd.sh -rw-rw-r-- ... foo.txt $ find . -not -executable ./foo.txt
所以在你的情況下,你可以這樣做:
find -type f -iname '*.sh' -not -executable -exec chmod +x {} \;
我嘗試了
-perm
選項。find . -perm /a=x
將在任何地方匹配
x
位a
所以你需要
find . -not -perm /a=x
這是接受答案的一種模糊形式。
您可以使用
find -perm /go=x
匹配
g
roup 或o
其他執行檔的文件。可悲的是你不能直接測試失去的位。