Do you have a question? Post it now! No Registration Necessary. Now with pictures!
- Posted on
- Simple copy script called mycopy.pl
- Leander Jedamus
October 4, 2012, 3:12 pm
rate this thread
I just wrote a simple script to fit my needs to copy from a SD-Card only
those photos which are newer then a timestamp-file.
Use at your on risk!
It can be found at
A short instruction-list can be found at
Re: Simple copy script called mycopy.pl
- Use Term::ANSIColor rather than rolling your own.
- Don't call subs with '&' unless you need to.
- 'warn' is a builtin. Defining a sub with that name is a bad idea.
- `date -r` is not portable (on my system it does something quite
different). Use stat() and POSIX::strftime.
my $sdir = $_;# source dir
my $ddir = $_;# destination dir
my $sfiles = $_;# the files to copy
my $rekursive = $_;# if going recursive? (y/n)
my $use_stamp = $_;# use stamp? (y/n)
my $stamp = $_;# the stamp
my $warn = $_;# warn level
my $debug = $_;#
is a horrid mess. Learn how to use list assignment.
- mkdirhier is not portable (it's part of X, from the bad old days when
mkdir didn't always understand -p). Use 'mkdir -p' (which ought to be)
or File::Path (which definitely is).
- I can't follow the logic in 'mycopy' at all. It must be possible to
write it without quite so many layers of ifs.
- I don't think there is a single comment in that program which makes
anything clearer. Something like a general description of the logic
implemented by the twisty maze of ifs in mycopy would have been much
more useful than closing every sub with '};# sub foo'.
- Use multi-arg system
system "cp", "-p", $sfile, $dfile;
rather than trying to get shell quoting right. What if there's a file
with " in its name?
After that I got bored, but is this really doing anything you can't do
with find -newer | xargs cp ? Or just forget the stamps and use rsync.