PSCP: télécharger un dossier entier, Windows vers Linux

36

J'utilise PSCP pour télécharger des fichiers de Windows vers Linux. Je peux le faire très bien en téléchargeant un fichier à la fois. Mais j'ai de très grands répertoires et je veux télécharger un répertoire entier à la fois.

J'ai essayé:

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

Lance l'erreur: "pscp: fichier distant / usr / local / tomcat / webapps / ROOT / includes / *: pas un répertoire"

et

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

Lance erreur: "scp: inclut: pas un fichier normal"

et

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

Lance erreur: "scp: inclut: pas un fichier normal"

UpHelix
la source
4
Avez-vous essayé d'ajouter -r?
Pablo Castellazzi

Réponses:

36

Deux problèmes: d'abord, le * ne va pas du côté de la destination. Deuxièmement, -rpour copier un répertoire entier et des sous-répertoires.

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

Copiera tous les fichiers du includes\répertoire local dans le .../includes/répertoire du serveur.

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

Copiera le includes\répertoire lui-même, y compris tous les fichiers et sous-répertoires, dans le .../ROOT/répertoire du serveur (où le contenu du répertoire local fusionnerait avec tout .../ROOT/includes/répertoire existant .

DerfK
la source
6

Avertissement:

Vous n'avez pas besoin d'utiliser -ipour cela. C'est pour l'authentification de fichier de clé privée. Il suffit d’utiliser -rpour copier les fichiers source de manière récursive.

Vous voudrez peut-être une méthode de glisser-déposer puisque vous utilisez Windows. Vous pouvez, par exemple, utiliser le client WINSCP .

Swiper Noswiping
la source
5

Si vous souhaitez copier un répertoire et son contenu, vous n'avez pas besoin de spécifier de fichier pour la destination. Utilisez simplement le nom du répertoire, par exemple.

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

Si vous voulez copier le répertoire et tout ce qui se trouve en dessous, vous pouvez utiliser -r:

pscp -r -i C:\sitedeploy\abt-keypair.ppk includes\ [email protected]:/usr/local/tomcat/webapps/ROOT/includes/
Le temps est venu
la source