Язык программирования Perl

         

Операции проверки файлов


Перед выполнением операций ввода-вывода часто требуется узнать информацию об объектах файловой системы. В Perl есть набор унарных операций для удобной проверки различных характеристик файлов и каталогов. Они имеют вид флагов из одной латинской буквы с предшествующим знаком минус, после которого указывается имя проверяемого файла. Полный перечень операций проверки файлов приведен в таблице 9.3.

Таблица 9.3. Операции проверки файлов

ОперацииОписание проверок
-r -w -xФайл доступен для чтения / записи / исполнения (по effective UID+GID)
-R -W -XФайл доступен для чтения / записи / исполнения (по real UID+GID)
-o -OФайл принадлежит текущему пользователю по effective / real UID
-e -zФайл существует (exists) / имеет нулевую длину (zero)
-sФайл имеет ненулевой размер: возвращает размер в байтах (size)
-f -dФайл является обычным файлом (file) / каталогом (directory)
-l -S -pФайл является ссылкой / сокетом / именованным FIFO-каналом (pipe)
-b -cФайл является блочным / символьным специальным файлом
-u -g -kДля файла установлен бит setuid / setgid / sticky
-tФайловый манипулятор связан с терминалом (tty)
-T -BФайл является текстовым (text) / двоичным (binary)
-M -A -CВремя изменения (modification) / доступа (access) / изменения (change) индексного узла (inode) файла в днях относительно времени начала выполнения программы ($^T)

Вот несколько типичных примеров использования операций проверки файлов для контроля доступности данных:

open($f1, "<$file1") # открыть файл на чтение, if (-e $file1) && # если он существует и (-r $file1); # он доступен на чтение open $f2, ">$file2" # открыть файл на запись, if -w $file2; # если в него можно писать $file_size = -s $file; # узнать размер файла print "$file - является каталогом!" if -d $file;



Содержание раздела