individuare Scp di uscita per xargs
Domanda
Voglio fare un elenco dei file di output di individuare.
Io voglio scp
prendere la lista.
Non sono sicuro sulla sintassi. Il mio tentativo con pseudo-codice
locate labra | xargs scp {} masi@11.11.11:~/Desktop/
Come è possibile spostare i file nella destinazione?
Soluzione
In genere, {} è un find ISM:
find ... -exec cmd {} \;
Dove {} è il file corrente che trovare sta lavorando su.
È possibile ottenere xargs a comportarsi simile con:
locate labra | xargs -I{} echo {} more arguments
Tuttavia, si noterà rapidamente che esegue i comandi più volte invece di una chiamata a scp .
Quindi, nel contesto del vostro esempio:
locate labra | xargs -I{} scp '{}' masi@11.11.11:~/Desktop/
Si notino le virgolette singole intorno al {} come sarà utile per i percorsi con spazi tra loro.
Altri suggerimenti
xargs prende normalmente il maggior numero di argomenti che può andare bene sulla linea di comando, ma usando -I improvvisamente vuole solo una. GNU http://www.gnu.org/software/parallel/ può essere un soluzione migliore:
locate labra | parallel -m scp {} masi@11.11.11:~/Desktop/
Dal momento che si sta cercando di SCP, mi permetto di suggerire anche controllare il rsync?
locate labra | parallel -m rsync -az {} masi@11.11.11:~/Desktop/