![使用 scp 复制时如何使用通配符 (*)?](https://linux22.com/image/19774/%E4%BD%BF%E7%94%A8%20scp%20%E5%A4%8D%E5%88%B6%E6%97%B6%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E9%80%9A%E9%85%8D%E7%AC%A6%20(*)%EF%BC%9F.png)
*
当我在路径中使用字符时,为什么无法使用 scp 进行复制?
scp SERVERNAME:/DIR/* .
SCP 需要什么配置才能允许*
在路径中?
更新:问题不在服务器端; pscp 正在尝试使用 SCPv1,这就是错误消息的原因:
答案1
您需要传递一个文字转义以scp
避免远程计算机将其*
视为 glob(请注意它是双引号的):
scp 'SERVERNAME:/DIR/\*' .
答案2
我发现帕特里克的建议是正确的,尽管克里斯的回答让我走上了正轨。使用引号,然后星号前就不需要反斜杠了。
带引号+反斜杠:
$ scp 'SERVERNAME:/tmp/file_num\*' . scp: /tmp/file_num*.csv: No such file or directory
仅包含引号:
$ scp 'SERVERNAME:/tmp/file_num*' . judgments_for_job_171642.csv 100% 32KB 32.0KB/s 00:00 judgments_for_job_172394.csv 100% 548KB 182.6KB/s 00:03
答案3
为了以避免通配符你想要两个 - 单引号和转义星号:
scp 'SERVERNAME:/DIR/\*' ./
如果你想使用通配符使用单引号或仅转义星号:
scp 'SERVERNAME:/DIR/*' ./
# or
scp SERVERNAME:/DIR/\* ./
好像scp
只支持通配符文件名但不是为了目录名。