GNU/Linux >> Tutoriales Linux >  >> Linux

Me gustaría canalizar la salida de find a la lista de entrada de scp, ¿cómo?

find . -name "*" -exec scp '{}' [email protected]:/directory ';'

Normalmente Pondría "alquitrán" todos los archivos juntos en una gran mancha y llamaría a "scp" solo una vez. Algo como esto:

tar czfv - file1 file2 dir1 dir2 | ssh [email protected]/ tar xvzf - -C directory
  • Se podría jugar con los parámetros --exclude=o --include=de tar.
  • Otra opción sería usar rsync.

Puedes hacerlo con un solo comando scp .

  • para versiones más recientes de scp :
scp `find <path> -name <expression>` [email protected]:<path_where_to_copy>
  • para versiones anteriores:
scp --exec=`find <path> -name <expression>` [email protected]:<path_where_to_copy>

Asegúrate de encapsular el find Comando entre comillas invertidas ` y no comillas simples ' .


for f in `find . -name "*"`;do scp $f [email protected]/directory;done

Linux
  1. ¿Cómo funcionan la entrada de teclado y la salida de texto?

  2. ¿Cómo hacer 'cabeza' y 'cola' en la entrada delimitada por nulos en Bash?

  3. ¿Cómo canalizar/dev/urandom a la salida de sonido de Linux?

  4. ¿Cómo canalizar la salida de grep a cp?

  5. Cómo encontrar la lista de controladores ODBC instalados en Linux

Cómo encontrar recursivamente y enumerar los archivos por fecha en Linux

Cómo encontrar la lista de repositorios instalados en Linux

Cómo encontrar todas las fuentes instaladas en Linux

¿Cómo listar carpetas usando comandos bash?

¿Cómo puedo unir dos tuberías con nombre en un flujo de entrada único en Linux?

¿Cómo enumerar todos los archivos de una partición en Linux?