Por que não consigo copiar com scp quando estou usando *
caracteres no caminho?
scp SERVERNAME:/DIR/* .
Que configuração o SCP precisa para permitir *
o caminho?
UPDATE: o problema não está no lado do servidor; O pscp está tentando usar o SCPv1, e é por isso que a mensagem de erro:
Respostas:
Você precisa passar por um escape literal
scp
para evitar que a máquina remota seja tratada*
como glob (observe que ela é duplamente citada):fonte
touch /tmp/abcd.1234; scp 'localhost:/tmp/abcd.\*' ./
:scp: /tmp/abcd.*: No such file or directory
pscp
no lado do cliente para permitir globbing remoto.Achei o conselho de Patrick correto, embora a resposta de Chris tenha me colocado no caminho certo. Use aspas e não precisará da barra invertida antes do asterisco.
scp: /tmp/file_num*.csv: esse arquivo ou diretório não existe
judgments_for_job_171642.csv 100% 32KB 32.0KB / s 00:00
judgments_for_job_172394.csv 100% 548KB 182.6KB / s 00:03
fonte
*
), e não sobre como ficar apenas no controle remoto.NOTA: A solução oferecida abaixo foi testada e conhecida por funcionar corretamente.
As aspas simples interromperão a expansão variável se você tiver aliasado parte do caminho que está observando.
Aqui está um script que usa DUPLAS cotações para o caso de uso do globbed filename -configure_ comando .tar.gz * usando um caminho alias com uma variável:
Após a citação dupla de fechamento, o destino do diretório local é construído extraindo apenas o diretório inicial do usuário especificado em / etc / passwd .
O próprio comando scp é precedido
sshpass
e-o StrictHostKeyChecking=no
automatiza completamente oscp
comando sem a interação do usuário. Parece complicado, mas melhor do que os caminhos de codificação que devem mudar de tempos em tempos.Anyhoo, um exemplo usando aspas duplas em que variáveis no caminho que você está procurando precisam expandir. HTH
fonte