scp -r 正在复制最后一个目录

scp -r 正在复制最后一个目录

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

相关内容