http://www.perlmonks.org?node_id=667888


in reply to Re: How can I filter a specified File Type.
in thread How can I filter a specified File Type.

Hi, Below mentioned script is filter and display all files whose file type is 33188.
#!/usr/bin/perl -w use strict; use File::stat; sub dodir { opendir(DIR,$_[0]) or die "Couldn't open $_[0] directory $!"; my $dir=$_[0]; print "\n Directory name is $dir"; if ( $dir !~ /\/$/ ) { $dir .= "/"; } my @List=readdir(DIR); closedir(DIR); splice(@List,0,2); foreach my $file (@List) { $file = $dir.$file; if( -d $file) { dodir($file); } elsif (stat($file)->mode == 33188 ) { print "\n File $file is pre +sent in $dir"; print "\n File type: ",stat($file)->mode; } } } my $dir_name="/home"; if ( -d $dir_name) { dodir($dir_name); }
============o/p======
./file_op.pl Directory name is /home Directory name is /home/abhosale Directory name is /home/abhosale/.texmf Directory name is /home/abhosale/.texmf/config Directory name is /home/abhosale/.texmf/config/web2c Directory name is /home/abhosale/.texmf/var Directory name is /home/abhosale/.texmf/var/fonts Directory name is /home/abhosale/.texmf/var/fonts/map Directory name is /home/abhosale/.texmf/var/fonts/map/dvipdfm Directory name is /home/abhosale/.texmf/var/fonts/map/dvipdfm/updmap Directory name is /home/abhosale/.texmf/var/fonts/map/dvips Directory name is /home/abhosale/.texmf/var/fonts/map/dvips/updmap Directory name is /home/abhosale/.texmf/var/fonts/map/pdftex Directory name is /home/abhosale/.texmf/var/fonts/map/pdftex/updmap Directory name is /home/abhosale/.texmf/var/web2c File /home/first is present in /home/ File type: 33188 Directory name is /home/myprog File /home/myprog/abc is present in /home/myprog/ File type: 33188 File /home/myprog/abd is present in /home/myprog/ File type: 33188 File /home/myprog/matter is present in /home/myprog/ File type: 33188 File /home/myprog/newfile is present in /home/myprog/ File type: 33188 File /home/myprog/oldfile is present in /home/myprog/ File type: 33188
Please let me know if any changes are required in this script.