使用通配符的scp文件。目标包含通配符的结果

时间:2015-04-09 18:59:09

标签: linux bash wildcard scp

用户如何使用通配符从终端使用scp从远程主机一次下载多个文本文件?此外,使用通配符的结果将文件保存在同一个命名目录中(假设已经存在)。远程目录还包含具有不同名称的其他文件。例如:

远程主机中的4个文件:

[Remote-host]:1Dir/File.txt  -> [Local-host]:1Dir/File.txt
[Remote-host]:2Dir/File.txt  -> [Local-host]:2Dir/File.txt
[Remote-host]:3Dir/File.txt  -> [Local-host]:3Dir/File.txt
[Remote-host]:4Dir/File.txt  -> [Local-host]:4Dir/File.txt

我尝试使用以下内容无济于事。请协助

scp [remote-host]:'*Dir/File.txt' '*Dir/'

2 个答案:

答案 0 :(得分:1)

请尝试以下方法检索您的文件:

scp user@host:~"/*Dir/*.txt" .

或者您可以尝试:

scp user@host:"~/*Dir/*.txt" .

这实际上取决于您的用户帐户在您的环境中的映射方式..

答案 1 :(得分:1)

感谢@thatotherguy给出了很好的答案。

对于其他感兴趣的人,rsync的以下命令可以正常工作

rsync -a --include '*Dir/' --include 'File.txt' --exclude '*' [Remote-host]: '\*Dir'

这意味着,包含所有带有'* Dir'的文件夹和名为'File.txt'的文件,排除其他所有内容。请注意,这会创建一个名为* Dir的新目录,其中包含所有1Dir,2Dir,3Dir等。