Операции | Описание проверок |
---|---|
-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;
В Perl есть целый набор встроенных функций для работы с файлами, с помощью которых можно манипулировать с самими файлами, а не с данными, хранящимися в них.
Функция
$ok = rename("$path/$old_name", "$path/$new_name");
Функция
unlink($list, $of, $files); # удалить список файлов
unlink $file if -e $file; # удалить файл, если он существует
Функция
$ok = truncate($file, $size);
Функция
@info = stat($file); # получить всю информацию о файле
$size = $info[7]; # размер файла в байтах
$modified = localtime($info[9]); # время изменения файла
Подробное описание всех элементов информационного списка можно найти в документации, указав утилите чтения документов имя функции следующим образом:
perldoc -f stat
Функция
utime($access_time, $modified_time, @list_of_files);
Кроме упомянутых, есть еще встроенные функции для изменения прав доступа и владельца файла, для чтения и создания символических и жестких ссылок. Немало разных функций для работы с файлами имеются в стандартной библиотеке модулей Perl, еще больше можно найти в хранилище модулей CPAN.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии