delete_if_exists.pl 719 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/perl
  2. # Author: Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # https://github.com/trizen
  5. #
  6. # Delete files from $delete_dir if exists in $compare_dir (or its sub-directories)
  7. #
  8. # Usage: perl delete_if_exists.pl /delete/dir /compare/dir
  9. #
  10. use strict;
  11. use warnings;
  12. use File::Find qw(find);
  13. use File::Spec::Functions qw(rel2abs catdir);
  14. my $delete_dir = rel2abs(shift);
  15. my $compare_dir = rel2abs(shift || die "usage: $0 [delete_dir] [compare_dir]\n");
  16. find sub {
  17. return unless -f;
  18. my $delete_file = catdir($delete_dir, $_);
  19. if (-f $delete_file) {
  20. print unlink($delete_file)
  21. ? "** Deleted: $delete_file\n"
  22. : "[!] Can't delete $delete_file: $!\n";
  23. }
  24. } => $compare_dir;