GNU/Linux >> Tutoriales Linux >  >> Linux

¿Subir directorios con sftp?

No sé por qué sftp hace esto, pero solo puede realizar una copia recursiva si el directorio de destino ya existe. Así que haz esto...

sftp> mkdir bin
sftp> put -r bin

CORREGIDO :Inicialmente afirmé erróneamente que OpenSSH no era compatible con put -r . Lo hace, pero lo hace de una manera muy extraña. Parece esperar que el directorio de destino ya exista, con el mismo nombre que el directorio de origen.

sftp> put -r source
 Uploading source/ to /home/myself/source
 Couldn't canonicalize: No such file or directory
 etc.
sftp> mkdir source
sftp> put -r source
 Uploading source/ to /home/myself/source
 Entering source/
 source/file1
 source/file2

Lo que es especialmente extraño es que esto se aplica incluso si le das un nombre diferente al destino:

sftp> put -r source dest
 Uploading source/ to /home/myself/dest
 Couldn't canonicalize: ...
sftp> mkdir dest
sftp> put -r source dest
 Uploading source/ to /home/myself/dest/source
 Couldn't canonicalize: ...
sftp> mkdir dest/source
sftp> put -r source dest
 Uploading source/ to /home/myself/dest/source
 Entering source/
 source/file1
 source/file2

Para un put recursivo mejor implementado , podrías usar el PuTTY psftp herramienta de línea de comandos en su lugar. Está en el putty-tools paquete bajo Debian (y muy probablemente Ubuntu).

Alternativamente, Filezilla hará lo que quieras, si quieres usar una GUI.


Puede que le interese usar rsync en cambio. El comando para eso sería

 rsync --delete --rsh=ssh -av bin/ remote-ip-or-fqdn:/home/earlz/blah/bin/

Esto copiará todo en bin/ y colóquelo en el servidor remoto en /home/earlz/blah/bin/ . Como beneficio adicional, primero verificará si el archivo en el lado remoto no ha cambiado y, si no es así, no lo volverá a enviar. Además, puede agregar una opción -z y lo comprimirá por usted.


Linux
  1. Cómo trabajar con el cliente SFTP en Linux:10 comandos sftp

  2. Linux:¿Suid no tiene efecto en los directorios con Linux?

  3. ¿Tiene problemas con los directorios de eliminación de comandos de búsqueda?

  4. Conéctese a un servidor en la nube con Filezilla usando SFTP

  5. Guía para principiantes de FTP y SFTP con 10 ejemplos

Administre los directorios de inicio de los usuarios de Linux con systemd-homed

Cómo excluir archivos y directorios con Rsync

Cómo comparar directorios con Meld en Linux

Comando Linux rmdir para principiantes (con ejemplos)

Mantener los archivos y directorios de Linux sincronizados con rsync

Lsyncd:sincroniza directorios locales con Linux remoto