I ran find2perl to give me some output that I included below (in
Sub_directory). If I have no network shares mounted it runs fine. But
I have some shares mounted (sftp, or smb, etc.) via Nautilus, the
below script really takes a long time. It begins to search through
~/.gvfs which is where Nautilus mounts user shares. How can I find a
particular directory while ignoring hidden folders like .gvfs?

Here is my code.

#!/usr/bin/env perl

use File::Find;

eval("use File::HomeDir;");
die "[err] File::HomeDir not installed. Use \"perl -e \"use CPAN;
install File::HomeDir;\"\" to install \n" if $@;

use strict;
use warnings;
no warnings 'File::Find';
use 5.010;

my $home_directory  = File::HomeDir->my_home;

use vars qw/*name *dir/;
*name = *File::Find::name;
*dir  = *File::Find::dir;

select_directories();

sub select_directories {
        print "\nLocating directory...\n";
        File::Find::find(\&Some_directory, $home_directory);
}

##-- Find directories.
sub Some_directory {
    my ($dev,$ino,$mode,$nlink,$uid,$gid);

    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
    -d _ &&
    ! /^.*\.gvfs\z/s &&
    /^AesTest.*\z/s &&
    print("$name\n");
}


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to