Perl:测试文件**实际上是**可写的,而不是检查文件权限

前端之家收集整理的这篇文章主要介绍了Perl:测试文件**实际上是**可写的,而不是检查文件权限前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个文件/ var / tmp / filename

在perl中,我编写了以下代码

#!/usr/bin/env perl
use strict;
use warnings;

if (-W /var/tmp/filename)
{
...
}

exit;

-W和-w函数(http://perldoc.perl.org/functions/-X.html)会检查文件是否可以实际写入,或者只检查文件权限是否允许写入?

我问的原因是我正在编写一个从服务器获取cookie的脚本.

此脚本需要能够将cookie文件写入文件系统,但如果cookie文件文件系统路径是只读的,则文件的权限无关紧要.所以我想测试cookiefile是否实际上是可写的而不是仅仅检查它的权限.

解决方法

如果您关注的是文件系统,则可以检查它是否以只读方式挂载.如果是这样,它在/ proc / mounts中的行将有ro,所以打开文件并grep for ro和你的文件系统.

这仅适用于使用/ proc但不属于您的文件系统.

请注意,使用mount进行查询的可靠性较低.

一种确定的方法是尝试编写文件,我会使用File::Temp.

猜你在找的Perl相关文章