前回filereadableを使ったので、今回はfilewritableです。
ヘルプ。
filewritable({file}) *filewritable()* The result is a Number, which is 1 when a file with the name {file} exists, and can be written. If {file} doesn't exist, or is not writable, the result is 0. If {file} is a directory, and we can write to it, the result is 2.
まあこれも権限チェックして結果を表示するだけの関数ですかね。
使ってみます。
前回使ったファイルを使います。
/tmp $ ls -l file1.txt -rw-r--r-- 1 takk wheel 6 11 15 02:01 file1.txt /tmp $
/tmp $ vim -c 'echo filewritable("file1.txt")'
1が表示されたのでTRUEですね。書き込み可能です。
次はもちろん。存在しないファイル。新規のファイルを作成することができるのかチェックなら、1が返るハズ。
:echo filewritable("aaa.txt")
0ですね。ファイル作成が可能かではなく、あくまでも存在するファイルが書き込み可能かどうかのチェックのようで>す。
次は存在している書き込み禁止のファイルを指定してみます。
/tmp $ ls -l /bin/ls -rwxr-xr-x 1 root wheel 51888 10 24 10:34 /bin/ls /tmp $
これにします。
:echo filewritable("/bin/ls")
0が表示されました。
コメント