#!/usr/bin/perl -w use strict; use vars qw($SOURCEFILE); $SOURCEFILE="/tmp/overwrite"; # First read in the source file use vars qw($sourcefile); open(F,"< $SOURCEFILE") or die "Couldn't read '$SOURCEFILE': $!\n"; undef $/; $sourcefile = <F>; close(F) or die "Couldn't close '$SOURCEFILE': $!\n"; # Now walk the directory and replace the files. opendir(D,".") or die "opendir error: $!\n"; while (my $f = readdir(D)) { next if ($f =~ /^\./); next unless (-f $f); open(F,"> $f") or die "Error overwriting '$f': $!\n"; print F $sourcefile; close(F) or die "Error closing '$f': $!\n"; } closedir(D) or die "closedir error: $!\n"; exit(0);
It's easier, though, and saves space if you just use links:
#!/usr/bin/perl -w use strict; use vars qw($SOURCEFILE); $SOURCEFILE="/tmp/overwrite"; # Now walk the directory and replace the files. opendir(D,".") or die "opendir error: $!\n"; while (my $f = readdir(D)) { next if ($f =~ /^\./); next unless (-f $f); unlink($f) or die "Error unlinking '$f': $!\n"; link($SOURCEFILE,$f) or die "Error linking '$f': $!\n"; } closedir(D) or warn "closedir error: $!\n"; exit(0);
In reply to Re: Newbie needs help replacing files in a directory
by sgifford
in thread Newbie needs help replacing files in a directory
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |