| Файлы, с которыми мы работали в предыдущей главе, обычно размещаются в одном каталоге с программой. Но современные операционные системы позволяют распределять файлы по каталогам, чтобы мы могли хранить любимые записи Beatles в формате MP3 отдельно от исходного кода для «книги с ламой» и не отправили файл MP3 в издательство. Perl позволяет работать с каталогами напрямую, причем выполняемые операции в целом портируемы между разными операционными системами. |
Статьи раздела '12. Операции с каталогами': |
| Альтернативный синтаксис глобов Говоря о глобах, мы имеем в виду оператор glob, однако ключевое слово glob не так уж часто встречается в программах, использующих глобы. Почему? Большая часть старого кода была написана до того, как оператор glob получил свое имя.... |
| Глобы Обычно командный процессор расширяет файловые спецификации в командной строке до имен конкретных файлов, совпадающих с ними. Эти спецификации называются глобами (glob). Например, если передать команде echo файловую спецификацию *.... |
| Дескрипторы каталогов Для получения списка имен из заданного каталога также можно воспользоваться дескриптором каталога. Дескрипторы каталога очень похожи на файловые дескрипторы – как по внешнему виду, так и по поведению. Их тоже необходимо открыть (o... |
| Изменение временных меток В тех редких случаях, когда вам нужно «соврать» другой программе относительно времени последнего обращения или модификации файла, функция utime придет вам на помощь. В первых двух аргументах передается новое время последнего обращ... |
| Изменение разрешений Команда UNIX chmod изменяет разрешения доступа для файла или каталога. В Perl эта задача решается функцией chmod:
chmod 0755, "fred", "barney";
Как и многие функции операционной системы, chmod возвращает количество успешно и... |
| Операции с файлами и каталогами Perl очень часто применяется для обработки файлов и каталогов. Так как язык Perl вырос в среде UNIX и до сих пор активно используется в ней, может показаться, что материал этой главы ориентирован на UNIX. Но к счастью, Perl старае... |
| Переименование файлов Функция rename присваивает новое имя существующему файлу:
rename "old", "new";
Как и аналогичная команда UNIX mv, она берет файл с именем old и присваивает ему имя new в том же каталоге. Переименование даже может сопровождат... |
| Перемещение по дереву каталогов Программа имеет определенный «рабочий каталог», который является отправной точкой для построения относительных путей. Иначе говоря, когда вы ссылаетесь на файл fred, имеется в виду файл fred в текущем рабочем каталоге. Рабочий кат... |
| Рекурсивное чтение каталогов Вряд ли вам понадобится возиться с рекурсивным чтением каталогов в самом начале вашей карьеры Perl-программиста. А раз так, вместо того чтобы отвлекать вас описанием возможностей замены уродливых сценариев find, мы просто скажем, ... |
| Смена владельца Если операционная система предоставляет такую возможность, вы можете сменить владельца (пользователя и группу) для списка файлов (или файловых дескрипторов) при помощи функции chown. Пользователь и группа изменяются одновременно, ... |
| Создание и удаление каталогов Создать новый каталог в существующем каталоге несложно. Просто вызовите функцию mkdir:
mkdir "fred", 0755 or warn "Cannot make fred directory: $!";
И снова при успешном создании возвращается true, а при неудаче задается пере... |
| Ссылки и файлы Чтобы лучше усвоить суть некоторых операций с файлами и каталогами, желательно понимать модель файлов и каталогов в системе UNIX, даже если вы работаете в другой системе, которая ведет себя несколько иначе. Как обычно, наше кратко... |
| Удаление файлов Файлы обычно создаются для хранения данных. Однако со временем данные устаревают и файл приходится удалять из системы. На уровне командного процессора UNIX удаление файла или файлов выполняется командой rm:
$ rm slate bedrock l... |