Perl - Verzeichnisse
Im Folgenden sind die Standardfunktionen aufgeführt, die zum Spielen mit Verzeichnissen verwendet werden.
opendir DIRHANDLE, EXPR # To open a directory
readdir DIRHANDLE # To read a directory
rewinddir DIRHANDLE # Positioning pointer to the begining
telldir DIRHANDLE # Returns current position of the dir
seekdir DIRHANDLE, POS # Pointing pointer to POS inside dir
closedir DIRHANDLE # Closing a directory.
Alle Dateien anzeigen
Es gibt verschiedene Möglichkeiten, alle in einem bestimmten Verzeichnis verfügbaren Dateien aufzulisten. Verwenden wir zunächst die einfache Methode, um alle Dateien mithilfe von zu erhalten und aufzulistenglob Betreiber -
#!/usr/bin/perl
# Display all the files in /tmp directory.
$dir = "/tmp/*";
my @files = glob( $dir );
foreach (@files ) {
print $_ . "\n";
}
# Display all the C source files in /tmp directory.
$dir = "/tmp/*.c";
@files = glob( $dir );
foreach (@files ) {
print $_ . "\n";
}
# Display all the hidden files.
$dir = "/tmp/.*";
@files = glob( $dir );
foreach (@files ) {
print $_ . "\n";
}
# Display all the files from /tmp and /home directories.
$dir = "/tmp/* /home/*";
@files = glob( $dir );
foreach (@files ) {
print $_ . "\n";
}
Hier ist ein weiteres Beispiel, das ein Verzeichnis öffnet und alle in diesem Verzeichnis verfügbaren Dateien auflistet.
#!/usr/bin/perl
opendir (DIR, '.') or die "Couldn't open directory, $!";
while ($file = readdir DIR) {
print "$file\n";
}
closedir DIR;
Ein weiteres Beispiel zum Drucken der Liste der C-Quelldateien, die Sie möglicherweise verwenden, ist:
#!/usr/bin/perl
opendir(DIR, '.') or die "Couldn't open directory, $!";
foreach (sort grep(/^.*\.c$/,readdir(DIR))) {
print "$_\n";
}
closedir DIR;
Neues Verzeichnis erstellen
Sie können verwenden mkdirFunktion zum Erstellen eines neuen Verzeichnisses. Sie benötigen die erforderliche Berechtigung, um ein Verzeichnis zu erstellen.
#!/usr/bin/perl
$dir = "/tmp/perl";
# This creates perl directory in /tmp directory.
mkdir( $dir ) or die "Couldn't create $dir directory, $!";
print "Directory created successfully\n";
Entfernen Sie ein Verzeichnis
Sie können verwenden rmdirFunktion zum Entfernen eines Verzeichnisses. Sie benötigen die erforderliche Berechtigung, um ein Verzeichnis zu entfernen. Außerdem sollte dieses Verzeichnis leer sein, bevor Sie versuchen, es zu entfernen.
#!/usr/bin/perl
$dir = "/tmp/perl";
# This removes perl directory from /tmp directory.
rmdir( $dir ) or die "Couldn't remove $dir directory, $!";
print "Directory removed successfully\n";
Ändern Sie ein Verzeichnis
Sie können verwenden chdirFunktion zum Ändern eines Verzeichnisses und zum Wechseln an einen neuen Speicherort. Sie benötigen die erforderliche Berechtigung, um ein Verzeichnis zu ändern und in das neue Verzeichnis zu wechseln.
#!/usr/bin/perl
$dir = "/home";
# This changes perl directory and moves you inside /home directory.
chdir( $dir ) or die "Couldn't go inside $dir directory, $!";
print "Your new location is $dir\n";