Perl 如何检查目录是否可通过UID写入?

Perl 如何检查目录是否可通过UID写入?,perl,file,permissions,rule,file-find,Perl,File,Permissions,Rule,File Find,是否可以使用File::Find::Rule确定目录是否可由给定UID写入 我使用了以下测试: my $uid = 123; # or whatever... my @subDirs = File::Find::Rule->permissions(isWriteable => 1, user => "$uid")->directory()->maxdepth(1)->in( $dir ); if (scalar @subDirs == 0) { di

是否可以使用
File::Find::Rule
确定目录是否可由给定UID写入

我使用了以下测试:

my $uid = 123; # or whatever...

my @subDirs = File::Find::Rule->permissions(isWriteable => 1, user => "$uid")->directory()->maxdepth(1)->in( $dir );
if (scalar @subDirs == 0) {
    die "$dir is not writeable...";
}
die "$dir is writeable";
但是它总是返回
$dir
是可写的,即使对于我知道受限制的测试目录也是如此

我可以对此测试进行哪些调整以使其正常工作

编辑

使用
use File::Find::Rule qw(权限)
导致脚本崩溃。我以前在较旧的
文件::查找::规则
操作中使用
权限()
时,从未需要指定此选项

如果我按如下方式调整规则,我会使事情正常进行

在这里,我正在测试子目录列表中是否存在父目录:

my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
$dir
子目录的父目录是

如果该目录存在于
@subDirs
列表中,则它必须是可写的


感谢ikegami建议使用此模块。

在此,我测试子目录列表中是否存在父目录:

my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
$dir
子目录的父目录是


如果该目录存在于
@子目录列表中,则它必须是可写的。

在此,我测试子目录列表中是否存在父目录:

my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
$dir
子目录的父目录是

如果该目录存在于
@subDirs
列表中,则它必须是可写的。

。。。没有
权限
方法。啊,你必须在使用。对我来说效果很好(前提是你
使用文件::查找::规则]:权限“
)哼哼。。。没有
权限
方法。啊,你必须使用。对我来说效果很好(前提是你
使用文件::查找::规则:权限“