Używam PSCP do przesyłania niektórych plików z systemu Windows do systemu Linux. Mogę to zrobić dobrze, po prostu przesyłając jeden plik na raz. Ale mam kilka bardzo dużych katalogów i chcę załadować cały katalog na raz.
Próbowałem:
pscp -i C:\sitedeploy\abt-keypair.ppk includes\* [email protected]:/usr/local/tomcat/webapps/ROOT/includes/*
Zgłasza błąd: „pscp: zdalny plikspec / usr / local / tomcat / webapps / ROOT / zawiera / *: not a katalog”
i
pscp -i C:\sitedeploy\abt-keypair.ppk includes\ [email protected]:/usr/local/tomcat/webapps/ROOT/includes/
Zgłasza błąd: „scp: zawiera: zwykły plik”
i
pscp -i C:\sitedeploy\abt-keypair.ppk includes [email protected]:/usr/local/tomcat/webapps/ROOT/includes
Zgłasza błąd: „scp: zawiera: zwykły plik”
-r
?Odpowiedzi:
Dwa problemy: Po pierwsze, * nie idzie po stronie docelowej. Po drugie,
-r
służy do kopiowania całego katalogu i podkatalogów.Skopiuje wszystkie pliki z
includes\
katalogu lokalnego do.../includes/
katalogu na serwerze.Skopiuje
includes\
sam katalog, łącznie ze wszystkimi plikami i podkatalogami, do.../ROOT/
katalogu na serwerze (gdzie zawartość katalogu lokalnego połączy się z dowolnym istniejącym.../ROOT/includes/
katalogiem.źródło
Zrzeczenie się:
Nie musisz do tego używać
-i
. Służy do uwierzytelniania pliku klucza prywatnego. Wystarczy użyć,-r
aby skopiować pliki źródłowe rekurencyjnie.Możesz potrzebować metody przeciągnij i upuść, ponieważ używasz systemu Windows. Możesz - na przykład - użyć klienta WINSCP .
źródło
Jeśli chcesz skopiować katalog i jego zawartość, nie musisz podawać specyfikacji pliku dla miejsca docelowego. Wystarczy na przykład użyć nazwy katalogu.
Jeśli chcesz skopiować katalog i wszystko pod nim, możesz użyć
-r
:źródło