PSCP: Upload an entire folder, Windows to Linux

138,168

Solution 1

Two problems: First, the * does not go on the destination side. Second, -r is for copying an entire directory and subdirectories.

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

Will copy all of the files in the local includes\ directory to the .../includes/ directory on the server.

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

Will copy the includes\ directory itself, including all files and subdirectories, to the .../ROOT/ directory on the server (where the contents of the local directory would merge with any existing .../ROOT/includes/ directory.

Solution 2

Disclaimer:

You don't need to use -i for this. It's for private key file authentication. Just use -r to copy the source files recursively.

You might want a drag and drop method since you're using Windows. You can - for example - use WINSCP client.

Solution 3

If you want to copy a directory and its contents you don't need to provide a file specification for the destination. Just use the directory name, for example.

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

If you want to copy the directory and everything below it then you can use -r:

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

Related videos on Youtube

UpHelix
Author by

UpHelix

I am a senior web developer and team/project manager. I develop with Javascript, Angular, React, Node, Firebase, jQuery, CSS, Bootstrap, HTML5, etc, etc.

Updated on September 18, 2022

Comments

  • UpHelix
    UpHelix almost 2 years

    I am using PSCP to upload some files from Windows to Linux. I can do it fine just uploading one file at a time. But I have some very large directories and I want to upload an entire directory at once.

    I have tried:

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

    Throws error: "pscp: remote filespec /usr/local/tomcat/webapps/ROOT/includes/*: not a directory"

    and

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

    Throws error: "scp: includes: not a regular file"

    and

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

    Throws error: "scp: includes: not a regular file"

    • Pablo Castellazzi
      Pablo Castellazzi almost 13 years
      Did you try adding -r?