Shell Script 測試檔案是否可讀或可寫入


本文是在 Shell Script 判斷檔案是否可讀或可寫入的方法。

Shell Script 還可以用以下參數測試檔案, 當符合以下條件便會回傳 true:

-w FILE : 檔案存在並可以寫入
-x FILE : 檔案存在並有執行權限
-d FILE : 是一個目錄
-e FILE : 檔案存在
-f FILE : 檔案存在, 而且不是 link
-r FILE : 檔案存在並可以讀取
-s FILE : 檔案存在並且不且空白檔案

-w 測試檔案寫入權限

Shell Script 的 -w 參數可以判斷檔案是否有寫入權限, 如果可以寫入會回傳 true; 不能寫入回傳 flase, 分別有寫法:

[ -w filename.txt ] && echo “Writable” || echo “Not Writable”
test -w filename.txt && echo “Writable” || echo “Not Writable”

以下是一個簡單 Shell Script 的例子, 輸入檔案名稱作為參數, 再測試檔案是否可以寫入:

儲存上面檔案名, 用 chmod 加入執行權限:

$ chmod +x test.sh

然後用以下指令執行 Shell Script:

$ ./test.sh filename

首先程式會測試是否有傳入參數, 如果沒有便離開。然後用 -w 測試檔案是否可以寫入.

-r 測試檔案讀取權限

如果上面的 Shell Script 改用 -r 參數, 便會測試檔案是否可讀:

[ -r filename.txt ] && echo “Readable” || echo “Not Readable”
test -r filename.txt && echo “Readable” || echo “Not Readable”

將上面的 Shell Script 改寫, 只要將 -w 改成 -r 便可以測試檔案是否可讀:

Leave a Reply