Linux 使用包含特定字符串的文件名远程SSH复制文件

Linux 使用包含特定字符串的文件名远程SSH复制文件,linux,ssh,copy,remote-server,scp,Linux,Ssh,Copy,Remote Server,Scp,我有两个远程服务器。一个是我当前连接的,另一个是我试图将大量文件复制到的(10.10.0.13) 我有一系列文件需要复制到不同的目录中,格式如下: /opt/DR/output/1/a/csva1file.csv /opt/DR/output/1/a/csva2file.csv /opt/DR/output/1/b/csvb1file.csv /opt/DR/output/1/b/csvb2file.csv /opt/DR/output/1/b/csvb3file.csv /opt/DR/out

我有两个远程服务器。一个是我当前连接的,另一个是我试图将大量文件复制到的(10.10.0.13)

我有一系列文件需要复制到不同的目录中,格式如下:

/opt/DR/output/1/a/csva1file.csv
/opt/DR/output/1/a/csva2file.csv
/opt/DR/output/1/b/csvb1file.csv
/opt/DR/output/1/b/csvb2file.csv
/opt/DR/output/1/b/csvb3file.csv
/opt/DR/output/1/b/csvb4file.csv
/opt/DR/output/1/c/csvc1file.csv
...
/opt/DR/output/30/a/csva1file.csv
对于output/1到output/40文件夹,这将继续。里面的所有文件夹都是相同的,里面的所有文件名都包含相似的字符串,只是根据它们所在的文件夹略有不同

我想将包含“a1”的所有文件从任何目录复制到远程服务器的文件夹中:

root@10.10.0.13:/data/landing/a/a1/
类似地,我希望对所有b1、c1、c2等文件执行此操作,并将它们复制到远程服务器上各自的位置

我似乎找不到一种不涉及编写多行代码的方法来实现这一点

我试过了

cd /opt/DR/output/1/a/
scp -r -v *a1* root@10.10.0.13:/data/landing/a/a1/
这是可行的,但我想复制**所有*a1 csv文件,而不是一个接一个地复制

我已经研究过globbing,但不认为它可以用于我的案例。我还研究了在python中使用paramiko/glob,但我也无法让它起作用。 理想情况下,我希望使用bashshell脚本来实现这一点,但是python脚本也可以


希望这是有意义的。任何帮助都将不胜感激。我可以通过SFTP或SCP进行复制。

用于编程问题,而不是关于使用或配置Unix及其实用程序的问题。或者是回答类似问题的好地方。这似乎应该行得通。它的作用是什么?@Barmar它确实有效,但要求我单独复制所有文件副本,而不是批量复制。在
output/1/a
中,您只有一个
a1
文件。它还应该传输哪些文件?但是您在多个目录中有相同的文件名
csva1file.csv
。无法将它们全部复制到目标上的同一目录。