通过bash脚本scp一堆文件:一定有更好的方法
我目前拥有以下bash脚本:通过bash脚本scp一堆文件:一定有更好的方法,bash,loops,scp,Bash,Loops,Scp,我目前拥有以下bash脚本: for a in `seq 16 75`; do scp doneill@server:/mnt/device/folder/numbered_file$a.txt ./; done; 虽然这确实有效,但速度非常慢。对于每个文件,向服务器发送请求大约需要4-7秒,然后再发送文件大约需要3秒 是否有一种方法只需要向服务器发送一条命令(以尽量减少我的VPN发送和接收每条命令的时间)?通常,我会做一些类似于scp的事情doneill@server:/mnt/devi
for a in `seq 16 75`;
do scp doneill@server:/mnt/device/folder/numbered_file$a.txt ./;
done;
虽然这确实有效,但速度非常慢。对于每个文件,向服务器发送请求大约需要4-7秒,然后再发送文件大约需要3秒
是否有一种方法只需要向服务器发送一条命令(以尽量减少我的VPN发送和接收每条命令的时间)?通常,我会做一些类似于scp的事情doneill@server:/mnt/device/folder/numbered_file*
但文件夹中有数千个我不想复制的文件。我只需要获得那些(由序列定义的)少数内容。在bash中:
scp doneill@server:/mnt/device/folder/numbered_file{16..75}.txt ./
这对bash有用吗
scp doneill@server:/mnt/device/folder/numbered_file{16..75}.txt ./
rsync应该做到这一点:
您可能需要对参数进行一些修改,但如果操作得当,这可能是通过ssh传输文件的最快方式。作为将来的参考,您可以在
For
语句中使用该括号语法,而不是在{16..17}中调用外部seq
实用程序:。您还可以为((a=16;a)执行: