There's a subtle bug that causes fcopy -H -r to fail to copy a symlink in case 
it points to an existing directory, i.e.
        files/tmp/etc/CLASS -> /etc
The problem is that when purging non-leaf directories from the list of entries 
to process, the entry is purged because the class directory entry 
(files/tmp/etc/CLASS in the example above) is (a symlink to) a directory (/etc 
in the example above).

The attached patch seems to fix that.
--- /usr/sbin/fcopy     2014-01-08 09:26:05.000000000 +0100
+++ /var/tmp/fcopy      2016-07-01 12:47:02.480376704 +0200
@@ -479,7 +479,7 @@
   my %ignoredirs;
   map $ignoredirs{$_}=1,@ignoredirs;
   File::Find::find({
-    wanted => sub { $has_subdirs{$File::Find::dir} |= -d},
+    wanted => sub { $has_subdirs{$File::Find::dir} |= !($opt_H && -l) && -d},
     preprocess => sub { grep ! (-d and exists($ignoredirs{$_})),@_}}, @ARGV);
 
   foreach (keys %has_subdirs) {

Reply via email to