HOWTO · PowerShell

Copier des fichiers de Windows vers Linux à l'aide de PowerShell

Découvrez les formes de commande pour copier des fichiers et des dossiers de Windows vers Linux avec scp ou pscp, le client de PuTTY, dans PowerShell.

Sur cette page

Depuis une invite PowerShell sous Windows, vous pouvez copier des fichiers ou des dossiers vers un hôte Linux avec scp ou pscp, le client de PuTTY. Les exemples ci-dessous sont des modèles de commande : remplacez les noms, l’hôte, le compte et les chemins fictifs par les valeurs correspondant à vos systèmes. Ils ne sont pas exécutés ici, car un transfert réel nécessite un serveur SSH accessible et un compte avec lequel vous pouvez vous authentifier.

Le transfert de fichiers utilise SSH pour se connecter à l’hôte distant ; il est distinct de la communication à distance PowerShell. Pour chaque commande, le client choisi doit pouvoir être appelé depuis votre invite, et l’hôte Linux doit accepter les connexions SSH pour le compte utilisé. Ces instructions n’imposent aucune méthode d’installation, version de système d’exploitation, version de PowerShell ni version du client en particulier.

Utilisez la commande scp pour copier des fichiers de Windows vers Linux dans PowerShell

Utilisez scp en indiquant d’abord un chemin source local, puis une destination distante au format user@host:/remote/directory/. Ce modèle de transfert d’un seul fichier copie test.txt, situé dans le répertoire PowerShell courant, vers /home/delftstack/ sur l’hôte Linux d’exemple :

scp test.txt delftstack@ubuntu-PC:/home/delftstack/

La source locale est test.txt ; delftstack désigne le compte distant et ubuntu-PC, le nom de l’hôte. La destination qui suit les deux-points est un répertoire sur cet hôte. Selon la configuration de l’accès SSH, le client peut vous demander de vous authentifier.

Pour copier un répertoire et son contenu, ajoutez -r et indiquez le répertoire comme source :

scp -r 'C:\New\complex' delftstack@ubuntu-PC:/home/delftstack/

Ici, C:\New\complex est un chemin Windows local et /home/delftstack/ le répertoire de destination distant. Si le chemin source contient des espaces, placez-le entre guillemets en respectant la syntaxe du shell. Pour un chemin distant contenant des espaces, utilisez une forme de citation acceptée par votre client scp et le shell distant ; la syntaxe exacte peut dépendre de leur combinaison.

Utilisez la commande pscp pour copier des fichiers de Windows vers Linux dans PowerShell

pscp est le client de transfert de fichiers en ligne de commande de PuTTY ; il permet lui aussi de transférer des fichiers via SSH. Assurez-vous que PowerShell peut appeler pscp. La page de téléchargement de PuTTY propose ses versions ; cet article ne recommande aucune version ni méthode d’installation particulière.

Le modèle suivant copie styles.csv, situé dans le répertoire courant, vers un répertoire distant dont le nom contient un espace :

pscp styles.csv 'delftstack@ubuntu-PC:/home/delftstack/New Folder'

La source locale est styles.csv ; le texte avant les deux-points désigne le compte distant et l’hôte, et le chemin qui suit correspond à la destination. Mettre toute la spécification distante entre guillemets permet de conserver l’espace dans un seul argument PowerShell. Si votre client ou le shell distant interprète ce chemin différemment, utilisez la forme de citation adaptée à cette configuration.

Pour transférer un répertoire, ajoutez -r avant le chemin source :

pscp -r 'C:\record' delftstack@ubuntu-PC:/home/delftstack/

Cette commande copie le répertoire local C:\record vers le répertoire distant /home/delftstack/. Avec les deux outils, utilisez -r pour copier une arborescence ; pour un seul fichier, indiquez son chemin sans cette option.

En bref, utilisez scp ou pscp de PuTTY depuis PowerShell en indiquant une source locale et une destination SSH distante. Choisissez le client disponible dans votre environnement, remplacez le compte et les chemins par les vôtres, puis authentifiez-vous auprès de l’hôte Linux si le client vous le demande.