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?

È stato utile?

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/
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top