PSCP: Carregar uma pasta inteira, Windows para Linux

36

Estou usando o PSCP para carregar alguns arquivos do Windows para o Linux. Eu posso fazê-lo bem apenas enviando um arquivo de cada vez. Mas eu tenho alguns diretórios muito grandes e quero fazer upload de um diretório inteiro de uma só vez.

Eu tentei:

pscp -i C:\sitedeploy\abt-keypair.ppk includes\* [email protected]:/usr/local/tomcat/webapps/ROOT/includes/*

Lança erro: "pscp: filespec remoto / usr / local / tomcat / webapps / ROOT / includes / *: não é um diretório"

e

pscp -i C:\sitedeploy\abt-keypair.ppk includes\ [email protected]:/usr/local/tomcat/webapps/ROOT/includes/

Lança erro: "scp: includes: não é um arquivo comum"

e

pscp -i C:\sitedeploy\abt-keypair.ppk includes [email protected]:/usr/local/tomcat/webapps/ROOT/includes

Lança erro: "scp: includes: não é um arquivo comum"

UpHelix
fonte
4
Você tentou adicionar -r?
Pablo Castellazzi

Respostas:

36

Dois problemas: Primeiro, o * não vai no lado do destino. Segundo, -ré para copiar um diretório e subdiretórios inteiros.

pscp -i C:\sitedeploy\abt-keypair.ppk includes\* [email protected]:/usr/local/tomcat/webapps/ROOT/includes/

Copiará todos os arquivos no includes\diretório local para o .../includes/diretório no servidor.

pscp -r -i C:\sitedeploy\abt-keypair.ppk includes\ [email protected]:/usr/local/tomcat/webapps/ROOT/

Irá copiar o includes\próprio diretório, incluindo todos os arquivos e subdiretórios, para o .../ROOT/diretório no servidor (onde o conteúdo do diretório local se fundirá com qualquer .../ROOT/includes/diretório existente .

DerfK
fonte
6

Aviso Legal:

Você não precisa usar -ipara isso. É para autenticação de arquivo de chave privada. Basta usar -rpara copiar os arquivos de origem recursivamente.

Você pode querer um método de arrastar e soltar, pois está usando o Windows. Você pode - por exemplo - usar o cliente WINSCP .

Swiper Noswiping
fonte
5

Se você deseja copiar um diretório e seu conteúdo, não precisa fornecer uma especificação de arquivo para o destino. Basta usar o nome do diretório, por exemplo.

pscp  -i C:\sitedeploy\abt-keypair.ppk includes\* [email protected]:/usr/local/tomcat/webapps/ROOT/includes/

Se você deseja copiar o diretório e tudo o que está abaixo dele, pode usar -r:

pscp -r -i C:\sitedeploy\abt-keypair.ppk includes\ [email protected]:/usr/local/tomcat/webapps/ROOT/includes/
Chegou a hora
fonte