我需要将一堆文件从生产主机传输到我的本地机器。我已经在需要从中传输文件的目录中。我知道需要传输到本地计算机的日志文件的名称。它们是 log.timestamp.hostnames,它们往往很长。如何使用 scp 批量传输?有没有比只输入长文件名更简单的方法?我可以从文件名中取出它吗?
问问题
3193 次
3 回答
6
使用通配符:
scp log.* user@host:/target/directory
于 2013-09-19T16:52:14.977 回答
0
这个命令行执行选项帮助解决了我传输文件子集的问题。由于 AIX unix 没有为 find 提供 -regextype 选项,因此我使用了 grep 命令来检索文件 tab1.msg 到 tab9 msg
scp $(find . -name "*" | grep tab.\.msg) user@host:/tmp
于 2014-05-29T02:23:03.933 回答
0
如果您不想复制当前目录中的所有文件(仅使用 ./*),您可以做的是解析当前目录中的所有文件并在其上运行正则表达式以匹配 log.timestamp.hostname 然后将其通过管道传输到 scp。对于正则表达式,我用 find 找到了这个示例正则表达式。在这里发送大文件是一个例子:scp syntax。类似于以下内容:
scp $(find . -regextype sed -regex ".*/log\.[a-z0-9\-]\.[a-z0-9\-]") user@remote:~/
您可能需要修改正则表达式以使其工作。
于 2013-09-19T17:06:22.827 回答