Perl 如何确定文件是否所有人都可读?
如何查找UNIX中的每个人是否都能读取文件?使用该函数。使用该函数。来自: 要为他人提取阅读信息,您可以这样做Perl 如何确定文件是否所有人都可读?,perl,Perl,如何查找UNIX中的每个人是否都能读取文件?使用该函数。使用该函数。来自: 要为他人提取阅读信息,您可以这样做 print "read for everyone" if $mode & 4; # pick bit 2 from mode 发件人: 要为他人提取阅读信息,您可以这样做 print "read for everyone" if $mode & 4; # pick bit 2 from mode (相对)现代的解决方案:use,自5.004以来的一个核心
print "read for everyone" if $mode & 4; # pick bit 2 from mode
发件人:
要为他人提取阅读信息,您可以这样做
print "read for everyone" if $mode & 4; # pick bit 2 from mode
(相对)现代的解决方案:use,自5.004以来的一个核心模块,一直在Perl5中。另见
(相对)现代的解决方案:use,自5.004以来的一个核心模块,一直在Perl5中。另见
@Tree:如果你不知道某个命令,请使用
perldoc-f stat
检查它,或者检查@Tree:如果你不知道某个命令,请使用perldoc-f stat
检查它,或者在“其他人”可以阅读,但“用户”或“组”不能阅读的模糊情况下,检查并不完全正确。另外,最好使用File::Stat和Fcntl来避免使用硬编码的数字。@mscha同意常数更好,但是在我查看文档之前,它们对我没有任何意义。根据不清楚的情况,仍然可以执行$mode&0444==0444
+1作为你的例子。完全同意常数太神秘了。不过,我不知道有什么更好、更合适的现代Perl解决方案。在“其他人”可以阅读,但“用户”或“组”不能阅读的晦涩情况下,它并不完全正确。另外,最好使用File::Stat和Fcntl来避免使用硬编码的数字。@mscha同意常数更好,但是在我查看文档之前,它们对我没有任何意义。根据不清楚的情况,仍然可以执行$mode&0444==0444
+1作为你的例子。完全同意常数太神秘了。不过,我不知道有什么更好、更合适的现代Perl解决方案。
use strict;
use warnings;
use File::stat;
use Fcntl qw(:mode);
...
my $mode = stat($filename)->mode;
my $allCanRead = ($mode & S_IRUSR) # User can read
&& ($mode & S_IRGRP) # Group can read
&& ($mode & S_IROTH); # Others can read