As a quick note and a little bit of source code sharing, I wrote the following Perl script to delete all of the binary files it finds in a list of files it’s given. I named this script deleteBinaryFiles.pl, and it should be called like this:
deleteBinaryFiles.pl listOfFilesToLookAt
where listOfFilesToLookAt is a file that contains a list of filenames, with one filename per line.
Given that brief introduction, here’s the source code:
#!/usr/bin/perl -w
# ---------------------------------------------------------------
# this script takes a filename as input.
# that file should contain a list of all files (not directories)
# that this script should examine.
# this script will delete all binary files that are in that list.
# ---------------------------------------------------------------
# 1) open the file that has a list of all of the files that need to be looked at.
# get this filename from the command line.
$num_args = $#ARGV + 1;
if ($num_args != 1) {
print "\nUsage: deleteBinaryFiles.pl filename\n";
exit;
}
$listOfFiles = $ARGV[0];
# 2) now go through all of the files in that file.
# if any of them are binary files, delete them.
open(FILE, $listOfFiles) or die "Could not read from '$listOfFiles', cowardly quitting. $!";
while (<FILE>) {
chomp;
$currFile = $_;
if (-B $currFile) {
unlink($currFile) or die "Could not delete '$currFile'\n";
print " deleted: $currFile\n";
}
}
close(FILE);
Possibly the only two important things about this example are:
- The
-B
file test operator determines if the current file is a binary file.
- The Perl
unlink
function is used to delete a file.
I just thought I’d share this source code here, so as a quick summary, if you wanted to see some Perl source code that shows (a) how to check to see if a file is a binary file, and (b) how to delete files in Perl, I hope this is helpful