我试图使用
在Linux服务器上通过SFTP下载多个文件sftp -o IdentityFile=key <user>@<server><<END
get -r folder
exit
END
将下载文件夹中的所有内容。 find
和grep
似乎是无效命令,因此也适用于循环。
我需要下载名称中包含字符串的文件,例如
test_0.txt
test_1.txt
但没有file.txt
答案 0 :(得分:1)
您需要使用sftp
吗?像rsync
这样的工具在ssh
上运行,具有灵活的包含/排除选项。例如:
rsync -a <user>@<server>:folder/ folder/ \
--include='test_*.txt' --exclude='*.txt'
这需要在远程系统上安装rsync
,但这些日子非常普遍。如果rsync
不可用,您可以使用tar
执行类似操作:
ssh <user>@<server> tar -cf- folder/ | tar -xvf- --wildcards '*/test_*.txt'
这会远程识别所有文件,但之后只会在接收方提取与目标模式匹配的文件。
答案 1 :(得分:0)
你真的需要-r
开关吗? folder
中是否有任何子目录?你没有提到这一点。
如果没有子目录,您可以使用带文件掩码的简单get
:
cd folder
get *test*