GNU/Linux >> Tutoriels Linux >  >> Linux

Spécifiez la position de sortie du tuyau

Vous pouvez utiliser xargs ou exactement cette exigence. Vous pouvez utiliser le -I comme espace réservé pour l'entrée reçue du pipeline, faites

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

(ou) utilisez ~ sans guillemets sous lesquels il ne se développe pas jusqu'au HOME chemin du répertoire.

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

Ceci

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

est le moyen le plus simple de le faire.

La tuyauterie connecte les stdouts aux stdins. Ici, vous voulez que la sortie aille vers un argument, vous avez donc besoin d'autre chose que de la tuyauterie classique.

Ce quelque chose est une substitution de commande ($() ).


Vous pouvez donner rsync une liste de fichiers à télécharger dans un fichier ou sur l'entrée standard en utilisant --files-from :

echo "dir/2/" | rsync --files-from=- -r example@unixlinux.online: /local/path/

Le - fait rsync lire à partir de l'entrée standard. Le serveur ne peut pas être attribué à rsync de cette façon. Il n'y aura qu'une seule connexion établie avec le serveur et tous les fichiers seront transférés via cette connexion.

Si vous utilisez -a ou --archive avec --files-from alors vous devez ajouter explicitement -r ou --recursive si vous voulez la récursivité depuis cette option, même si elle fait partie de -a , est désactivé lorsque --files-from est utilisé.


Linux
  1. Sortie de canal à utiliser comme spécification de recherche pour grep sous Linux

  2. Accidentellement utilisé la redirection de sortie > au lieu d'un tube |

  3. Comment diriger quoi que ce soit vers la sortie audio ?

  4. Comment rediriger un fichier téléchargé vers la sortie standard dans bash ?

  5. Puis-je faire en sorte que rsync ne sorte que le résumé ?

Seashells - Canalisez la sortie de votre commande Linux vers le Web en temps réel

Rediriger et canaliser la sortie ?

Tuyau B à D ? – A &&B || C | RÉ?

Canaliser la sortie vers la fonction bash

Comment diriger la sortie de grep vers cp?

Pipe/Mix Line In vers Output dans PulseAudio