Назад | Перейти на главную страницу

PSCP: загрузить всю папку из Windows в Linux

Я использую PSCP для загрузки некоторых файлов из Windows в Linux. Я могу делать это нормально, просто загружая по одному файлу за раз. Но у меня есть очень большие каталоги, и я хочу загрузить сразу весь каталог.

Я пытался:

pscp -i C:\sitedeploy\abt-keypair.ppk includes\* root@mysite.com:/usr/local/tomcat/webapps/ROOT/includes/*

Выдает ошибку: «pscp: remote filespec / usr / local / tomcat / webapps / ROOT / includes / *: not a directory»

и

pscp -i C:\sitedeploy\abt-keypair.ppk includes\ root@mysite.com:/usr/local/tomcat/webapps/ROOT/includes/

Выдает ошибку: "scp: includes: не обычный файл"

и

pscp -i C:\sitedeploy\abt-keypair.ppk includes root@mysite.com:/usr/local/tomcat/webapps/ROOT/includes

Выдает ошибку: "scp: includes: не обычный файл"

Две проблемы: во-первых, * не попадает на сторону назначения. Во-вторых, -r предназначен для копирования всего каталога и подкаталогов.

pscp -i C:\sitedeploy\abt-keypair.ppk includes\* root@mysite.com:/usr/local/tomcat/webapps/ROOT/includes/

Скопирует все файлы в локальный includes\ каталог в .../includes/ каталог на сервере.

pscp -r -i C:\sitedeploy\abt-keypair.ppk includes\ root@mysite.com:/usr/local/tomcat/webapps/ROOT/

Скопирую includes\ каталог, включая все файлы и подкаталоги, в .../ROOT/ каталог на сервере (где содержимое локального каталога будет сливаться с любым существующим .../ROOT/includes/ каталог.

Отказ от ответственности:

Вам не нужно использовать -i для этого. Это для аутентификации файла закрытого ключа. Просто используйте -r для рекурсивного копирования исходных файлов.

Возможно, вам понадобится метод перетаскивания, поскольку вы используете Windows. Вы можете, например, использовать Клиент WINSCP.

Если вы хотите скопировать каталог и его содержимое, вам не нужно указывать спецификацию файла для места назначения. Просто используйте, например, имя каталога.

pscp  -i C:\sitedeploy\abt-keypair.ppk includes\* root@mysite.com:/usr/local/tomcat/webapps/ROOT/includes/

Если вы хотите скопировать каталог и все, что находится под ним, вы можете использовать -r:

pscp -r -i C:\sitedeploy\abt-keypair.ppk includes\ root@mysite.com:/usr/local/tomcat/webapps/ROOT/includes/

Если вы хотите скопировать саму папку со всем, что находится под ней, вы должны использовать следующую команду:

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

Но обратите внимание, что в конце пути к папке «C: \ FOLDER» нет косой черты; если вы используете его с конечной косой чертой, например «C: \ FOLDER1 \», он не копирует саму папку, а только копирует все, что находится в папке.