例如,我试图做一个简单的scp:
scp tzj21@example.co.uk:/home/tzj21/scratch/McAdam/chains/z0.5/temp_cc1/* .
当文件夹中显然有文件并且只返回scp: No match.时,它就会失败?我敢肯定这以前起过作用。当我尝试:
scp tzj21@example.co.uk:/home/tzj21/scratch/McAdam/chains/z0.5/temp_cc1/1.txt .
效果很好。这与我试图用scp来阻止我传输所有文件的服务器有关吗?
编辑:解决了。主要的问题是我在tcsh里面而不是bash。
发布于 2017-07-24 03:25:43
您需要在远程shell上展开* (包括所有文件),而不是在本地shell上。
任何防止在本地外壳上预扩展*的常规转义方法都可以:
scp tzj21@example.co.uk:/home/tzj21/scratch/McAdam/chains/z0.5/temp_cc1/'*' .
scp tzj21@example.co.uk:/home/tzj21/scratch/McAdam/chains/z0.5/temp_cc1/"*" .
scp tzj21@example.co.uk:/home/tzj21/scratch/McAdam/chains/z0.5/temp_cc1/\* .或者您也可以引用整个文件名字符串:
scp tzj21@example.co.uk:'/home/tzj21/scratch/McAdam/chains/z0.5/temp_cc1/*' .
scp tzj21@example.co.uk:"/home/tzj21/scratch/McAdam/chains/z0.5/temp_cc1/*" .发布于 2017-07-24 03:22:12
也许这样就行了。
您必须将文字转义传递给scp,这样远程机器就不会认为它是一个glob。
exmaple>
scp tzj21@example.co.uk:/home/tzj21/scratch/McAdam/chains/z0.5/temp_cc1\* .
scp tzj21@example.co.uk:/home/tzj21/scratch/McAdam/chains/z0.5/temp_cc1* .https://stackoverflow.com/questions/45272088
复制相似问题