Bootstrap FreeKB - Perl (Scripting) - Determine if a directory is empty
Perl (Scripting) - Determine if a directory is empty

Updated:   |  Perl (Scripting) articles

Let's say the /tmp directory contains two non-hidden files, foo.txt and bar.txt.

ls -lisa /tmp

 8409154 8 drwxrwxrwt. 49 root     root     4096 Jun 24 04:08 .
      64 0 dr-xr-xr-x. 17 root     root      224 Jun 24 04:00 ..
 8422986 4 -rw-r--r--.  1 root     root      330 Jun 23 22:55 foo.txt
 8422988 4 -rw-r--r--.  1 root     root     2835 Jun 18 03:21 bar.txt

 

The following Perl script will return the number of non-hidden objects in the /tmp directory. In this example, the script will print "2". If the /tmp directory were empty, the script would print "0".

#!/usr/bin/perl
use strict;
use warnings;

opendir(my $dh, "/tmp");
print scalar(grep { $_ ne "." && $_ ne ".." } readdir($dh));

 

Let's say you want to use this as a subroutine. 

If directory is empty (care of this Stack Overflow post).

sub directory_is_empty {
  my $directory = shift;
  opendir(my $dh, $directory);
  return scalar(grep { $_ ne "." && $_ ne ".." } readdir($dh));
}

 

You would then do something like this to store the count of non-hidden objects in the directory.

my $count = directory_is_empty("/path/to/directory");

 




Did you find this article helpful?

If so, consider buying me a coffee over at Buy Me A Coffee



Comments


Add a Comment


Please enter 9fb42b in the box below so that we can be sure you are a human.