Ниже перечислены некоторые стандартные функции для управления каталогами:
opendir DIRHANDLE, EXPR # Открытие каталога readdir DIRHANDLE # Чтение каталога rewinddir DIRHANDLE # Перемещение указателя в начало Telldir DIRHANDLE # Возврат текущей позиции каталога searchdir DIRHANDLE, POS # Найдите позицию POS, указанную в каталоге closedir DIRHANDLE # Закрыть каталог
Показать все файлы
Отображение всех файлов в каталоге. В следующем примере используется оператор glob, как показано ниже:
Пример
#!/usr/bin/perl # Показать все файлы в каталоге /tmp $dir = " /tmp/ * " мой @files = glob ( $дир ) ; ( @files ) { распечатать $_ . " п " } # Отобразить все файлы, заканчивающиеся на .c, в каталоге /tmp $ dir = " /tmp/*.c " @files = glob ( $дир ) ; ( @files ) { распечатать $_ . " п " } # Показать все скрытые файлы $ dir = " /tmp/.* " @files = glob ( $дир ) ; ( @files ) { распечатать $_ . " п " } # Показать все файлы в каталогах /tmp и /home $dir = " /tmp/* /home/ * " @files = glob ( $дир ) ; ( @files ) { распечатать $_ . " п " } В следующем примере можно перечислить все файлы в текущем каталоге:
Пример
#!/usr/bin/perl открытый каталог ( НАПРАВЛЕНИЕ , ' . ' ) или умереть " Невозможно
открыть каталог, $! " ; ( $file = каталог чтения ДИРА ) { распечатать " $файл n " } закрытая директория НАПРАВЛЕНИЕ ; Если вы хотите отобразить все файлы, заканчивающиеся на .c, в каталоге /tmp, вы можете использовать следующий код:
Пример
#!/usr/bin/perl opendir ( КАТАЛОГ , ' . ' ) или умереть « Невозможно открыть каталог, $ ! » foreach ( сортировка grep ( /^.*. c $/, readdir ( DIR ) ) ) { распечатать " $_ n " } закрытая директория НАПРАВЛЕНИЕ ; Создать новый каталог
Мы можем использовать функцию mkdir для создания нового каталога. Перед выполнением вам необходимо иметь достаточные разрешения для создания каталога:
Пример
#!/usr/bin/perl $dir = " /tmp/perl " # Создайте каталог perl в каталоге /tmp мкдир ( $дир ) или умереть " Невозможно создать каталог $dir , $! " « Каталог успешно создан n » ; удалить каталог
Мы можем использовать функцию rmdir для удаления каталога. Для выполнения этой операции необходимы достаточные разрешения. Кроме того, удаляемый каталог должен быть пустым:
Пример
#!/usr/bin/perl $dir = " / tmp/perl " # Удалить каталог perl в каталоге /tmp rmdir ( $дир ) или умереть " Невозможно удалить каталог $dir , $! " " Каталог успешно удален n " ; Переключить каталог
Мы можем использовать функцию chdir для переключения текущего каталога. Для выполнения этой операции необходимы достаточные разрешения. Примеры следующие:
Пример
#!/usr/bin/perl $dir = " / home " # Переместить текущий каталог в каталог /home чдир ( $дир ) или умереть " Невозможно переключить каталог на $dir , $! " ; " Каталог, в котором вы сейчас находитесь: $dir n " ; Результат выполнения вышеуказанной программы:
Каталог, в котором вы сейчас находитесь, — /home.