从远程复制指定目录时出现“是目录”错误

时间:2018-12-09 12:24:23

标签: linux bash remote-server scp

我正在尝试使用以下脚本从远程最近的N个目录下载:

  echo "Downloading last $lastN failed tests..."
  RECENT=$(ssh $USER@$IP ls -1td $DIR/* | head -$lastN)
  scp -r $USER@$IP:"$RECENT" $TARGET

但它仅下载第一个文件,并为其他文件引发错误:

bash: line 1: /some/path/test_2018-12-08-20-21-19: Is a directory
bash: line 2: /some/path/test_2018-12-07-15-08-53: Is a directory
bash: line 3: /some/path/test_2018-12-07-14-56-28: Is a directory
bash: line 4: /some/path/test_2018-12-07-14-54-12: Is a directory

我的脚本怎么了?

1 个答案:

答案 0 :(得分:1)

首先,您需要迭代$ RECENT变量的所有值,而不是立即向scp命令指定它。

for recentElement in $RECENT; do
  scp -r $USER@$IP:"$recentElement " "$TARGET/"
done

但是,您可能需要调整创建$TARGET变量的方式,确定它是目录吗?

您是否考虑使用rsync而不是scp