Как узнать, доступен ли файл для чтения всем? - PullRequest
1 голос
/ 08 февраля 2011

Как узнать, доступен ли файл для чтения всем в UNIX?

Ответы [ 3 ]

9 голосов
/ 08 февраля 2011

(относительно) современное решение: используйте File :: stat , модуль ядра с 5.004, и Fcntl , который всегда был в Perl 5. См. Также perldoc -f stat .

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
5 голосов
/ 08 февраля 2011

С perldoc :

$mode = (stat($filename))[2];
printf "Permissions are %04o\n", $mode & 07777;

Чтобы извлечь бит для чтения другим, вы можете сделать

print "read for everyone" if $mode & 4;    # pick bit 2 from mode
2 голосов
/ 08 февраля 2011

Используйте функцию stat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...