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