GNU/Linux >> Linux Esercitazione >  >> Linux

Specificare la posizione di uscita del tubo

Puoi usare xargs o esattamente questo requisito. Puoi usare il -I come segnaposto per l'input ricevuto dalla pipeline, do

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

(o) usa ~ senza virgolette doppie sotto le quali non si espande al HOME percorso della directory.

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

Questo

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

è il modo più semplice per farlo.

Il piping collega gli stdout con gli stdin. Qui vuoi che l'output vada a un argomento, quindi hai bisogno di qualcos'altro rispetto al piping classico.

Quel qualcosa è la sostituzione dei comandi ($() ).


Puoi dare rsync un elenco di file da scaricare in un file o su input standard utilizzando --files-from :

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

Il - rende rsync letto dall'input standard. Il server non può essere assegnato a rsync in questo modo. Verrà effettuata una sola connessione al server e tutti i file verranno trasferiti tramite quella connessione.

Se usi -a o --archive con --files-from quindi devi aggiungere esplicitamente -r o --recursive se vuoi la ricorsione da quell'opzione, anche se fa parte di -a , è disabilitato quando --files-from viene utilizzato.


Linux
  1. Reindirizzamento e uscita del tubo?

  2. Ordinare l'output per colonna?

  3. Pipe output da usare come specifica di ricerca per grep su Linux

  4. Come reindirizzare /dev/urandom all'output audio di Linux?

  5. Invia l'output alla funzione bash

Seashells:invia l'output del tuo comando Linux al Web in tempo reale

Tubo da B a D? – A&&B || C | D?

Vorrei convogliare l'output di find nell'elenco di input di scp, come?

Posso usare l'output della pipe come argomento dello script della shell?

Cosa significa il simbolo della pipe Linux | fare?

Pipe/Mix Line In all'uscita in PulseAudio