首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scp来自源和目标的不同名称的多个文件

scp来自源和目标的不同名称的多个文件
EN

Stack Overflow用户
提问于 2017-01-13 10:55:05
回答 2查看 3.4K关注 0票数 2

我正在尝试scp多个文件从源到destination.The场景是源文件名与目标文件不同

这是我想要做的SCP命令

代码语言:javascript
复制
scp /u07/retail/Bundle_de.properties rgbu_fc@<fc_host>:/u01/projects/MultiSolutionBundle_de.properties

基本上,我确实有超过7个文件,我正在尝试分离scps来实现它。所以我想把它连接到一个scp上来传输所有的文件

我在这里尝试的scp命令很少-

代码语言:javascript
复制
$  scp /u07/retail/Bundle_de.properties rgbu_fc@<fc_host>:/u01/projects/MultiSolutionBundle_de.properties

$ scp /u07/retail/Bundle_as.properties rgbu_fc@<fc_host>:/u01/projects/MultiSolutionBundle_as.properties

$ scp /u07/retail/Bundle_pt.properties rgbu_fc@<fc_host>:/u01/projects/MultiSolutionBundle_pt.properties

$ scp /u07/retail/Bundle_op.properties rgbu_fc@<fc_host>:/u01/projects/MultiSolutionBundle_op.properties  

我正在寻找一个解决方案,通过这个解决方案,我可以在一个scp命令中实现上述4个文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-13 11:15:12

使用GNU tar、ssh和bash:

代码语言:javascript
复制
tar -C /u07/retail/ -c Bundle_{de,as,pt,op}.properties | ssh user@remote_host tar -C /u01/projects/ --transform 's/.*/MultiSolution\&/' --show-transformed-names -xv

如果您想在文件名中使用globbing (*):

代码语言:javascript
复制
cd /u07/retail/ && tar -c Bundle_*.properties | ssh user@remote_host tar -C /u01/projects/ --transform 's/.*/MultiSolution\&/' --show-transformed-names -xv

-C:切换到目录 -c:创建一个新的存档 Bundle_{de,as,pt,op}.properties:bash在执行tar命令之前将其扩展为Bundle_de.properties Bundle_as.properties Bundle_pt.properties Bundle_op.properties --transform 's/.*/MultiSolution\&/':将MultiSolution添加到文件名中 --show-transformed-names:转换后显示文件名 -xv:解压缩文件并逐字列出已处理的文件

票数 1
EN

Stack Overflow用户

发布于 2017-01-13 11:00:33

在任何标准的POSIX shell中,看起来都是一个简单的循环:

代码语言:javascript
复制
for i in de as pt op
do scp "/u07/retail/Bundle_$i.properties" "rgbu_fc@<fc_host>:/u01/projects/MultiSolutionBundle_$i.properties"
done

或者,您可以在本地为文件指定新名称(复制、链接或移动),然后使用通配符传输它们:

代码语言:javascript
复制
dir=$(mktemp -d)
for i in de as pt op
do cp "/u07/retail/Bundle_$i.properties" "$dir/MultiSolutionBundle_$i.properties"
done
scp "$dir"/* "rgbu_fc@<fc_host>:/u01/projects/"
rm -rf "$dir"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41632945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档