GNU/Linux >> Tutoriales Linux >  >> Linux

Especificar la posición de salida de la tubería

Puedes usar xargs o exactamente este requisito. Puedes usar el -I como marcador de posición para la entrada recibida de la canalización, haz

echo "myserver:${HOME}/dir/2/" | xargs -I {} rsync -r "{}" /local/path/

(o) usa ~ sin comillas dobles bajo las cuales no se expande al HOME ruta del directorio.

echo myserver:~/dir/2/ | xargs -I {} rsync -r "{}" /local/path/

esto

 rsync -r "$(echo myserver:~/dir/2/)" /local/path/

es la forma más fácil de hacerlo.

Las tuberías conectan las salidas estándar con las entradas estándar. Aquí desea que la salida vaya a un argumento, por lo que necesita algo más que las tuberías clásicas.

Ese algo es sustitución de comandos ($() ).


Puedes dar rsync una lista de archivos para descargar en un archivo o en la entrada estándar usando --files-from :

echo "dir/2/" | rsync --files-from=- -r [email protected]: /local/path/

El - hace rsync leer desde la entrada estándar. El servidor no se puede dar a rsync de esta forma. Solo se realizará una única conexión al servidor y todos los archivos se transferirán a través de esa conexión.

Si usa -a o --archive con --files-from entonces necesitas agregar explícitamente -r o --recursive si desea recurrir a esa opción, aunque sea parte de -a , está deshabilitado cuando --files-from se utiliza.


Linux
  1. ¿Redirigir y canalizar la salida?

  2. Pipe salida para usar como especificación de búsqueda para grep en Linux

  3. ¿Cómo canalizo o redirijo la salida de curl -v?

  4. Utilizó accidentalmente la redirección de salida > en lugar de una tubería |

  5. ¿Puedo hacer que rsync genere solo el resumen?

Conchas marinas:canalice la salida de su comando de Linux a la web en tiempo real

Tubería B a D? – A &&B || C | ¿D?

¿Ordenar salida por columna?

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

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

Tubería/Mezcla de entrada de línea a salida en PulseAudio