PSCP:将整个文件夹从 Windows 上传到 Linux

PSCP:将整个文件夹从 Windows 上传到 Linux

我正在使用 PSCP 将一些文件从 Windows 上传到 Linux。我可以一次上传一个文件,但效果并不好。但我有一些非常大的目录,我想一次上传整个目录。

我努力了:

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

引发错误:“pscp:远程文件规范 /usr/local/tomcat/webapps/ROOT/includes/*:不是目录”

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

引发错误:“scp:包括:不是常规文件”

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

引发错误:“scp:包括:不是常规文件”

答案1

有两个问题:首先,* 不在目标端。其次,-r用于复制整个目录和子目录。

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

将会把本地目录中的所有文件复制includes\.../includes/服务器上的目录中。

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

将把includes\目录本身(包括所有文件和子目录)复制到.../ROOT/服务器上的目录(其中本地目录的内容将与任何现有.../ROOT/includes/目录合并。

答案2

免责声明:

您不需要使用-i它。它用于私钥文件认证。只需使用它-r来递归复制源文件即可。

由于您使用的是 Windows,因此您可能需要使用拖放方法。例如,您可以使用WINSCP 客户端

答案3

如果要复制目录及其内容,则无需提供目标文件规范。例如,只需使用目录名称即可。

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

如果您想要复制目录及其下的所有内容,那么您可以使用-r

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

答案4

如果您要复制文件夹本身及其下的所有内容,则必须使用以下命令:

pscp -r -i C:\PrivateKeys\MyPrivateKey.ppk C:\FOLDER1 <username>@<server_id>:/home/<username>/

但请注意,文件夹路径“C:\FOLDER”末尾没有斜杠;如果将其与结尾斜杠一起使用,如“C:\FOLDER1\”,它不会复制文件夹本身,而只会复制文件夹下的所有内容。

相关内容