Question

Je veux faire une liste des fichiers de la sortie de localiser. Je veux scp prendre la liste.

Je ne suis pas sûr de la syntaxe. Ma tentative de pseudo-code

locate labra | xargs scp {} masi@11.11.11:~/Desktop/

Comment pouvez-vous déplacer les fichiers vers la destination?

Était-ce utile?

La solution

En règle générale, {} est un trouver isme:

find ... -exec cmd {} \;

Où {} est le fichier actuel qui travaille trouver sur.

Vous pouvez obtenir xargs pour se comporter semblable avec:

locate labra | xargs -I{} echo {} more arguments

Cependant, vous remarquerez rapidement qu'il exécute les commandes plusieurs fois au lieu d'un appel à scp .

Ainsi, dans le contexte de votre exemple:

locate labra | xargs -I{} scp '{}' masi@11.11.11:~/Desktop/

Notez les guillemets simples autour de la {} comme il sera utile pour les chemins avec des espaces en eux.

Autres conseils

xargs prend normalement autant d'arguments qu'il peut tenir sur la ligne de commande, mais en utilisant -I il soudain prend seulement un. http://www.gnu.org/software/parallel/ peut être un meilleure solution:

locate labra | parallel -m scp {} masi@11.11.11:~/Desktop/

Puisque vous regardez scp, puis-je vous suggère de vérifier également rsync?

locate labra | parallel -m rsync -az {} masi@11.11.11:~/Desktop/
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top