¿Puede scp crear un directorio si no existe?

Pregunta:

Quiero usar scp para cargar archivos, pero a veces es posible que el directorio de destino no exista.

¿Es posible crear la carpeta automáticamente? ¿Si es así, cómo? Si no es así, ¿qué otra forma puedo probar?

Respuesta:

Ésta es una de las muchas cosas que puede hacer rsync .

Si está utilizando una versión de rsync lanzada en los últimos años, ¹ su sintaxis de comandos básica es similar a scp : ²

$ rsync -r local-dir remote-machine:path

Eso copiará local-source y su contenido a $HOME/path/local-dir en la máquina remota, creando los directorios que sean necesarios.

rsync tiene algunas restricciones aquí que pueden afectar si esto funcionará en su situación particular. No creará múltiples niveles de directorios remotos faltantes, por ejemplo; solo creará hasta un nivel faltante en el control remoto. Puede evitar esto fácilmente precediendo el comando rsync con algo como esto:

$ ssh remote-host 'mkdir -p foo/bar/qux'

Eso creará el árbol $HOME/foo/bar/qux si no existe. No va a quejarse o hacer cualquier otra cosa mala si existe ya.

rsync veces tiene otros comportamientos sorprendentes. Básicamente, le está pidiendo que averigüe lo que pretendía copiar, y es posible que sus conjeturas no coincidan con sus suposiciones. Pruébalo y verás. Si no se comporta como espera y no puede ver por qué, publique más detalles sobre las configuraciones de su directorio local y remoto y proporcione el comando que intentó.


Notas a pie de página :

  1. Antes de rsync 2.6.0 (1 de enero de 2004), requería el indicador -e ssh para que se comportara como scp porque estaba predeterminado en el protocolo RSH obsoleto.

  2. scp y rsync comparten algunos indicadores, pero solo hay un poco de superposición.

  3. Cuando se usa SSH como protocolo de transferencia, rsync usa los mismos valores predeterminados. Entonces, al igual que scp , asumirá que hay un usuario con el mismo nombre que su usuario local en la máquina remota de forma predeterminada.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım