Pro lidi, kteří skutečně chtějí přímou odpověď na tuto otázku (místo toho, aby jim bylo řečeno, aby použili něco jiného než sftp)...
put -r local/path/to/directoryName
Nahraný adresář již musí existovat v pracovním adresáři na serveru, takže jej možná budete muset nejprve vytvořit.
mkdir directoryName
Zde najdete podrobné vysvětlení, jak kopírovat adresář pomocí scp
. Ve vašem případě by to bylo něco jako:
$ scp -r foo [email protected]:/some/remote/directory/bar
Tím se zkopíruje adresář "foo" z místního hostitele do adresáře "bar" vzdáleného hostitele.Zde -r
je -rekurzivně kopírovat celé adresáře.
Můžete také použít rcp
s podobnou syntaxí. Jediný rozdíl mezi nimi je, že scp
používá zabezpečený shell a rcp
používá vzdálený shell.
BTW Chyba „Nelze kanonizovat“, kterou jste zmínili, se objeví, když sftp server nemůže získat přístup k souboru/adresáři uvedenému v příkazu.
AKTUALIZACE :Pro uživatele, kteří chtějí používat put
konkrétně se podívejte na odpověď Bena Thielkera zde.
sftp> mkdir source
sftp> put -r source
Uploading source/ to /home/myself/source
Entering source/
source/file1
source/file2