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";