2012-07-21 12 views
9

¿Hay alguna forma de scp de almacenar todos los archivos en un directorio recursivamente en una máquina remota y conservar sus nombres de archivo originales, pero no copiar el directorio en el que se encuentra?scp recursivo, excepto el directorio actual

dir1/file 
dir1/dir2/file2 

lo que el contenido de dir1 se copian solamente. dir1 no se crearía. Sin embargo, el directorio dir2 se crearía con file2 dentro.

He intentado scp -r dir1 remote:/newfolder pero crea dir1 en el directorio /newfolder en remote. No quiero que cree ese directorio dir1. Simplemente coloque todos los archivos dentro de dir1 en newfolder.

Respuesta

19
cd dir1 
scp -r . remote:/newfolder 

Esto evita dar scp la oportunidad de hacer cualquier cosa con el nombre dir1 en la máquina remota. También puede ser que prefiera:

(cd dir1; scp -r . remote:/newfolder) 

Esto deja a su concha en su directorio original, mientras se trabaja de la misma (ya que lanza un sub-intérprete de órdenes que los cd y scp operaciones).

8

Esto significa copiar la lista de archivos realizadas por el desarrollo del forro dir1/* a la remota ubicación remota:/NewFolder

scp -r dir1/* remote:/newfolder 
+0

Me gusta esta respuesta porque evita tener que hacer un 'cd'. Si su próxima declaración después de 'scp' espera que esté en su directorio original, entonces tendría que hacer un paso más para' cd' de nuevo. – jreancsu

1

Puede usar la sintaxis de punto con la ruta relativa.

scp -r dir1/. remote:/newfolder 

Si el directorio remoto no existe, se crea.

Cuestiones relacionadas