summaryrefslogtreecommitdiffstats
path: root/support/mapfrom
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 16:14:31 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 16:14:31 +0000
commit2d5707c7479eacb3b1ad98e01b53f56a88f8fb78 (patch)
treed9c334e83692851c02e3e1b8e65570c97bc82481 /support/mapfrom
parentInitial commit. (diff)
downloadrsync-2d5707c7479eacb3b1ad98e01b53f56a88f8fb78.tar.xz
rsync-2d5707c7479eacb3b1ad98e01b53f56a88f8fb78.zip
Adding upstream version 3.2.7.upstream/3.2.7
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'support/mapfrom')
-rwxr-xr-xsupport/mapfrom15
1 files changed, 15 insertions, 0 deletions
diff --git a/support/mapfrom b/support/mapfrom
new file mode 100755
index 0000000..88946bc
--- /dev/null
+++ b/support/mapfrom
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl
+# This helper script makes it easy to use a passwd or group file to map
+# values in a LOCAL transfer. For instance, if you mount a backup that
+# does not have the same passwd setup as the local machine, you can do
+# a copy FROM the backup area as follows and get the differing ID values
+# mapped just like a remote transfer FROM the backed-up machine would do:
+#
+# rsync -av --usermap=`mapfrom /mnt/backup/etc/passwd` \
+# --groupmap=`mapfrom /mnt/backup/etc/group` \
+# /mnt/backup/some/src/ /some/dest/
+
+while (<>) {
+ push @_, "$2:$1" if /^(\w+):[^:]+:(\d+)/;
+}
+print join(',', @_), "\n";