Das ist nur Beifang auf der Suche nach einem anderen Fehler, aber ich kann mir 
nicht vorstellen, daß fcomy -m oder file-modes zuverlässig funktioniert, weil 
die Abfrage, ob etwas zu ändern ist, vor dem Auswerten von 
@opt_modes/read_file_mode() steht.
--- fcopy.0     2017-01-11 16:05:58.000000000 +0100
+++ fcopy.1     2017-01-11 16:14:10.000000000 +0100
@@ -304,9 +304,6 @@
   # get mtime,uid,gid,mode from destination file
   my ($dtime,@ddefmodes) = (stat("$destfile"))[9,4,5,2];
   # compare time,uid,gid and mode of source file and target file
-  # if different: change the values
-  return if ($stime == $dtime && (($ddefmodes[0] == $defmodes[0]) &&
-      ($ddefmodes[1] == $defmodes[1]) && ($ddefmodes[2] == $defmodes[2])));
 
   if ($modeset) { # use -m values
     ($owner,$group,$mode) = @opt_modes;
@@ -316,6 +313,10 @@
     ($owner,$group,$mode) = @defmodes;
   }
 
+  # if different: change the values
+  return if ($stime == $dtime && (($ddefmodes[0] == $owner) &&
+      ($ddefmodes[1] == $group) && ($ddefmodes[2] == $mode)));
+
   ($uid,$gid) = name2num($owner,$group);
   warn "chown/chmod u:$uid g:$gid m:$mode $destfile\n" if $debug;
   return if $dryrun; # do not execute if -n or FCOPY_DRYRUN was given

Reply via email to