我需要将一堆文件从生产主机传输到本地计算机。我已经在我需要传输文件的目录中了。我知道需要传输到本地计算机的日志文件的名称。它们是log.timestamp.hostnames,这些往往很长。如何使用scp批量转移?有没有比输入长文件名更简单的方法?我可以从文件名中删除它吗?
答案 0 :(得分:6)
使用通配符:
scp log.* user@host:/target/directory
答案 1 :(得分:0)
如果您不想复制当前目录中的所有文件(只使用./*),您可以做的是解析当前目录中的所有文件并运行正则表达式在它上面匹配log.timestamp.hostname然后管道到scp。对于正则表达式,我发现了这个例子regex with find。要在此处发送大文件就是一个示例:scp syntax。有点像:
scp $(find . -regextype sed -regex ".*/log\.[a-z0-9\-]\.[a-z0-9\-]") user@remote:~/
您可能希望修改正则表达式以使其正常工作。
答案 2 :(得分:0)
此命令行执行选项有助于解决我传输文件子集的问题。由于AIX unix没有为find提供-regextype选项,所以我使用了grep命令来检索文件tab1.msg到tab9 msg
scp $(find . -name "*" | grep tab.\.msg) user@host:/tmp