scp -r
我过去用过,但从未见过这个。
我正在做以下事情:
dirArr=(
/drv1/sample1/dataset1
/drv2/sample2/dataset2
/drv3/sample3/dataset3
)
for f in ${dirArr[@]}; do
echo mkdir -p /newdrive3"$f" | ssh [email protected] /bin/bash
scp -r "$f" [email protected]:"/newdrive3$f"
done
会发生递归复制,但最后一个目录每次都会在其内部复制。所以目的地的目录树结构是:
/newdrive3/drv1/sample1/dataset1/dataset1
/newdrive3/drv2/sample2/dataset2/dataset2
/newdrive3/drv3/sample3/dataset3/dataset3
是什么原因造成的?
我该如何预防?
答案1
您创建了两次目录。
在您的脚本中,使用#! /bin/bash -x
顶部的来调试它。
您只需创建 /newdrive3 一次。
尝试这个:
#!/bin/bash
dirArr=(
/drv1/sample1/dataset1
/drv2/sample2/dataset2
/drv3/sample3/dataset3
)
ssh [email protected] 'mkdir -p /newdrive3'
for f in "${dirArr[@]}"; do
scp -r "$f" [email protected]:/newdrive3
done