![在两台服务器之间传输列表中指定的数百个文件](https://linux22.com/image/1361569/%E5%9C%A8%E4%B8%A4%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%8B%E9%97%B4%E4%BC%A0%E8%BE%93%E5%88%97%E8%A1%A8%E4%B8%AD%E6%8C%87%E5%AE%9A%E7%9A%84%E6%95%B0%E7%99%BE%E4%B8%AA%E6%96%87%E4%BB%B6.png)
我需要从一台服务器下载 800 个文件到我的服务器。这些文件有不同的名称,并且位于远程服务器的不同子目录中,但我有一个列表,上面有它们的名称。我怎样才能做到这一点,而不必逐一进行操作?我可以使用 scp 或 sftp,但我不知道如何提交要下载的文件列表。
多谢!
答案1
你应该能够做类似的事情:
wget http://the.source.of.it.all $(< /the/list/of/files/here)
甚至可以通过一个脚本来运行整个过程,该脚本遍历文件,从列表中读取一行并请求它。
您对 shell 编程了解多少?您对 Unix 命令行实用程序了解多少?您是否熟悉脚本语言,例如 Perl 或 Python?
答案2
sftp
有一个-b
选项可以从批处理文件中读取命令。批处理文件应包含命令列表,就像您在sftp>
命令提示符下键入的命令一样。
您可以生成一个批处理文件,其中包含get
要获取的每个文件的命令以及您需要发出的任何其他命令,例如lcd
将lmkdir
文件放在正确的本地目录中。