我必须通过删除所有未使用的文件来清理目录及其子目录。 (如果文件未链接到任何文件,则视为未使用
HTML文件,或者未明确指定正在使用此文件)。可以通过href
或img src
在HTML文件中链接文件。
例如,我有一个I.html
,1.html
,2.html
和1
文件夹。在I.html
文件中,href
使用1.html
和1
目录,但其他文件未使用2.html
。那么,如何删除未使用的2.html
文件?
use strict;
use warnings;
my($path,$regexExpression) = @ARGV;
my $fileNames = "data.txt";
my @abc= ();
if(not defined $path){
die "File directory not given, please try again \n"
}
print "added file ";
if (not defined $regexExpression) {
$regexExpression="*";
print "--Taking default Regular Expression. \n"
}
if (defined $regexExpression) {
print "The regular Expression : $regexExpression \n";
my $directorypathx= `pwd`;
my ($listofFileNames) = findFilesinDir($path);
my ($listofLinks) = readallHrefInaFile();
my ($listofImage) = readImageFile();
print $listofLinks;
}
sub findFilesinDir{
print "inside subroutines ", $path,"\n";
my($pathName) = @_;
my $fileNames =`find '$pathName' -name '$regexExpression' | sort -h -r > $fileNames ` ;
if (-l $fileNames){
return $fileNames;
}
}
sub readallHrefInaFile{
my $getAllLinks = ` grep -Eo "<a .*href=.*>" $path*.html | uniq ` ;
push (@abc,$getAllLinks);
}
sub readImageFile{
print "image files \n";
my $getAllImage = ` grep -Eo "<img .*src=.*>" $path*.html | uniq `;
push (@abc,$getAllImage);
}
print @abc;
I.html
<html>
<head>
<title>Index</title>
</head>
<body>
<h1>Index</h1>
<a href="1.html">1</a>
<h1>Downloads</h1>
<a href="downloads/s.zip">Compressed craters</a>
<hr>
</body>
</html>
1.html
<html>
<head>
<title>1</title>
</head>
<body>
<h1>1</h1>
<img src="images/1-1.gif" />
<img src="images/1-2.gif" />
<hr>
</body>
</html>