scp: omite un archivo mientras se ejecuta


8

Estoy ejecutando scp y copiando una carpeta del servidor remoto, estoy ejecutando con -rl, así que veo que los archivos se copian, ¿es posible omitir el archivo actual de alguna manera?

Respuestas:


11

No, no puedes. Pero puedes parar scpy usar rsyncen su lugar. Copiará solo las diferencias que quedan de la copia parcial y puede excluir cualquier archivo o directorio que no desee transferir.

rsync -avP -e ssh --exclude=somefile --exclude=somedir ./localdir/ user@server:remotedir/

2
Esto es útil, sí, pero desafortunadamente no responde la pregunta que se hizo.
Emmaly Wilson

8
Responde la pregunta perfectamente; la pregunta pregunta si es posible hacer algo y esta respuesta responde "no". Luego proporciona una alternativa útil sobre el tema.
Christopher Shroba

1

No, no con -ro cualquier otra sintaxis que realice múltiples transferencias de archivos dentro de un scpcomando.

Dicho esto, scptambién sigue el paradigma de UNIX: escribir programas que proporcionan una funcionalidad simple y precisa que se puede encadenar de manera interesante. Esto significa que sería posible escribir un bucle que realice de forma interactiva invocaciones individuales del comando, una por archivo. Entonces podrá salir de los comandos individuales mientras se ejecutan. (Ctrl-C)

El código para esto se deja como un ejercicio para el lector, pero debe enfatizarse la necesidad de que este bucle se ejecute dentro de un shell interactivo. Salir de un shell no interactivo terminaría todo el trabajo.


0

¡Sí tu puedes!

Enumeremos el directorio remoto y copiemos cada archivo por separado. Luego presione ctrl-c para cada archivo que no quiera copiar:

OLD_IFS="$IFS"
IFS=$'\n'
for file in `ssh user@host ls /remote/directory/`
  do echo user@host:/remote/directory/$file /local/directory/
done;
IFS="$OLD_IFS"

OLD_IFS está aquí para manejar archivos con espacios en ellos.


¿Dónde pones esto? ¿Como lo llamas?
EstadísticasSorceress
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.