Soy un usuario novato de Linux y estoy tratando de enviar una larga lista de archivos de una computadora a otra. La lista de argumentos es demasiado larga, por lo que estoy usando find. Sin embargo, tengo problemas para configurar la expresión. Alguien puede ayudar?
Esto es lo que normalmente escribiría para una breve lista de argumentos.
scp ./* phogan@computer/directory...
Aquí creo que esto podría traducirse con find.
scp find . -name "*" phogan@computer/directory...
¿Tal vez podría usar tuberías? Cualquier sugerencia ayudaría. Gracias por adelantado.
Puedes hacerlo con un solo comando
scp
.scp
:Asegúrese de encapsular el
find
comando entre comillas invertidas ` y no comillas simples ' .fuente
scp `find <path> -name <expression>` user@host:<path_where_to_copy>
-r
scp -r
es para la recursión en una sola entrada (directorio), no para múltiples entradas (múltiples archivos).fuente
grep -l pattern *
Yo sugeriría
Tenga en cuenta que esta solución evita tener los nombres de los archivos en la línea de comandos donde podrían interpretarse como argumentos de la línea de comandos.
Otra cosa a tener en cuenta es que los nombres de archivo pueden contener espacios. Esto significa que un bucle for en bash podría tener dificultades con una lista de nombres de archivo.
fuente