Simple copy script called mycopy.pl

  • Thread starter Leander Jedamus
  • Start date
L

Leander Jedamus

Am 04.10.2012 19:57, schrieb Ben Morrow:
Quoth Leander Jedamus said:
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
http://paste.ubuntu.com/1259875/

- 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.

- This

sub mycopy
{
my $sdir = $_[0];# source dir
my $ddir = $_[1];# destination dir
my $sfiles = $_[2];# the files to copy
my $rekursive = $_[3];# if going recursive? (y/n)
my $use_stamp = $_[4];# use stamp? (y/n)
my $stamp = $_[5];# the stamp
my $warn = $_[6];# warn level
my $debug = $_[7];#

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.

Ben

Thanks! I will look into it.

Grüße
Leander Jedamus
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top