gpt4 book ai didi

linux - 使用 scp 将几个文件(不同扩展名,例如 xml、crt.jks)从一台服务器复制到另一台服务器

转载 作者:太空宇宙 更新时间:2023-11-04 04:43:57 31 4
gpt4 key购买 nike

我有一个要求,我需要复制几个不同扩展名的文件,例如使用 scp 将 xml、crt、jks 从一台服务器传输到另一台服务器。

到目前为止,它会复制目录 (/tmp) 中的所有文件,并将其放入新创建的子目录 tmp 下的目标服务器中。一旦文件传输到目标服务器,我需要使用复制的文件执行一些命令,并将生成一些结果文件。

目标服务器中执行命令后,我需要将结果文件复制到源服务器中,但它会再次复制所有文件:-(

我尝试了这些命令,但没有成功

$scp '/tmp/*.{xml,crt,jks}' user@<destination server>

这会导致不必要的网络文件传输,因此我正在尝试减少这种情况。

最佳答案

尝试有条件地选择哪些文件扩展名应该经过 scp 处理而不发送所有文件扩展名?没问题,无论如何,您已经朝着正确的方向迈出了一步!让我们花点时间看看你原来的命令在做什么......

$scp '/tmp/*.{xml,crt,jks}' user@<destination server>

好吧,从命令的角度来看,

“我将运行 scp 命令,然后查找终止 ' 字符,并将内部字符视为文字。我看到我们将在/tmp 中查找文件并获取名为 *.{xml,crt,jks} 的文件。我看到结尾 ',因此文字已完成,现在我将其迁移到传递的服务器。”

命令失败并不奇怪,因为您可能没有任何名为 *.{xml,crt,jks} 的文件。在你的/tmp文件夹。您使用 {} 并没有错。 according to the documentation on wildcards ,但是您遇到的问题是文字阻止 shell 扩展的简单错误。您对''的使用导致输入被视为实际的文字,从而消除了 bash 扩展这些通配符并有条件地执行操作的需要。因此,真正的命令是...

scp /path/to/files/{*.fileType1,*.fileType2,...} user@<destination server>

I suggest reading more into shell expansions如果您希望保留'',请进行更多研究以在引号或文字中获取变量或可扩展术语。并且仍然有可变条款。

关于linux - 使用 scp 将几个文件(不同扩展名,例如 xml、crt.jks)从一台服务器复制到另一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50745416/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com