perl之时间处理脚本与文件遍历创硬链接

#!/usr/bin/perl -w

sub gettime() {
  chomp(my $flag = $_[0]);
  my $time = time();
  ($sec,$min,$hour,$day,$month,$year) = localtime($time);
  if($flag eq 'd') {
     my $datetime = sprintf("%4d%02d%02d",$year+1900,$month+1,$day);
  }
  elsif($flag eq 's') {
     my $datetime = sprintf("%4d%02d%02d%02d%02d%02d",$year+1900,$month+1,$day,$hour,$min,$sec);
  }
  elsif($flag eq 'f') {
     my $datetime = sprintf("%4d-%02d-%02d% 02d:%02d:%02d",$year+1900,$month+1,$day,$hour,$min,$sec);
  }
}

$daytime = &gettime('d');
print("$daytime\n");
$daytime = &gettime('s');
print("$daytime\n");
$daytime = &gettime('f');
print("$daytime\n");
#!/usr/bin/perl -w
use File::Basename;

use File::Find;

my $path = '文件所在目录';

sub gettime() {
   ...
}

sub findFile {
  my $file;
  if(-f $File::Find::name) {
     print("has find a file\n");
     $bakfile = $File::Find::name;
     ($linkfile = $bakfile) =~ s/bak/newbak/g;
     print("----$linkfile\n");
     $linkfile =~ s%$daytime/%%g;
     print("=====$linkfile\n");
     $linkpath = dirname($linkfile);
     print("+++++$linkpath\n");
     print("create $linkpath\n") unless -d $linkpath;
     mkdir $linkpath or die "can't create $linkpath:$!\n" unless -d $linkpath;
     unlink "$linkfile" if -f $linkfile;
     link "$bakfile","$linkfile" or die "link $bakfile to $linkfile failed:$!\n";
     print("$bakfile link to $linkfile\n");
  }
}

find(\&findFile,$path);

猜你喜欢

转载自blog.csdn.net/qq_40199698/article/details/87652820