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"
Two problems: First, the * does not go on the destination side. Second,
-r
is for copying an entire directory and subdirectories.Will copy all of the files in the local
includes\
directory to the.../includes/
directory on the server.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.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.
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.
If you want to copy the directory and everything below it then you can use
-r
:If you want to copy the folder itself with everything under it, you must use a command as below:
But notice there is no slash at the end of folder path "C:\FOLDER"; if you use it with an ending slash like "C:\FOLDER1\" it doesn't copy the folder itself, but only copies everything under the folder.