【发布时间】:2022-01-17 11:06:19
【问题描述】:
一般来说,我可以将远程服务器上的文件一个一个地scp到我的本地主机;但是,我想从一个大的远程文件夹中提取200个文件,并且一个一个scp效率不高。我想知道是否有更优雅的方法来实现这一点。
这是我平时做的一件一件的事情:
scp remote/Users/folder/file.txt local/Desktop
我创建了一个 .txt 文件,其中包含我想要 scp 的文件名。
任何评论将不胜感激!
【问题讨论】:
-
cat file_name.txt | awk '{ printf "scp user@host_ip:/path/to/folder/%s .", $1}' | bash你可以用这样的东西 -
rsync使用--files-from=FILE将传输FILE中提供的文件列表。您要传输的文件列表。见man 1 rsync。注意提供远程主机上的相对或绝对文件位置。 -
@AbuHanifa :这将更加低效:它不仅会导致每个文件调用一次
scp,还会导致额外的 bash 进程。 -
@DavidC.Rankin :如果您将
-z添加到您的rsync,我认为您的解决方案将是此处讨论的最有效的解决方案。也许值得提供它作为答案。
标签: linux bash remote-server scp