summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominique Martinet <asmadeus@codewreck.org>2017-12-01 21:08:19 +0100
committerDominique Martinet <asmadeus@codewreck.org>2017-12-01 21:08:19 +0100
commit84e1d4bdacffd429eb29a8186fccb1996a580364 (patch)
tree99642b57575976698fae5f9e1d36ea4df19e443a
first rewrite
-rwxr-xr-xmcp.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/mcp.sh b/mcp.sh
new file mode 100755
index 0000000..4367eb4
--- /dev/null
+++ b/mcp.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+cp-dir() {
+ local SRC="$1"
+ local DST="$2"
+ shift 2
+
+ for DIR in "$@"; do
+ DSTDIR="${DST}${DIR#$SRC}"
+ echo mkdir "$DSTDIR"
+ find "$DIR" -maxdepth 1 -not -type d -execdir sh -c 'echo cp "$@" "$DSTDIR"' -- {} +
+ done
+}
+export -f cp-dir
+
+find tree -type d -print0 | xargs -0 -P 8 bash -c 'cp-dir "$@"' -- tree /tmp/dest