Para las personas que realmente quieren una respuesta directa a esta pregunta (en lugar de que se les diga que usen algo que no sea sftp)...
put -r local/path/to/directoryName
El directorio cargado ya debe existir en el directorio de trabajo en el servidor, por lo que es posible que deba crearlo primero.
mkdir directoryName
Aquí puede encontrar una explicación detallada de cómo copiar un directorio usando scp
. En tu caso, sería algo como:
$ scp -r foo [email protected]:/some/remote/directory/bar
Esto copiará el directorio "foo" del host local al directorio "bar" de un host remoto. Aquí -r
es -copiar recursivamente directorios completos.
También puedes usar rcp
con sintaxis similar. La única diferencia entre ellos es que scp
usa shell seguro y rcp
usa shell remoto.
Por cierto El error "No se pudo canonizar" que mencionó aparece cuando el servidor sftp no puede acceder al archivo/directorio mencionado en el comando.
ACTUALIZAR :Para usuarios que quieren usar put
específicamente, consulte la respuesta de Ben Thielker aquí.
sftp> mkdir source
sftp> put -r source
Uploading source/ to /home/myself/source
Entering source/
source/file1
source/file2