bedtime question : xargs
Roger Oberholtzer
roger at opq.se
Thu Apr 23 06:38:11 PDT 2009
On Thu, 2009-04-23 at 07:38 -0500, vu pham wrote:
> Roger Oberholtzer wrote:
> > On Wed, 2009-04-22 at 22:59 -0500, Vu Pham wrote:
> >> Using xargs, how can I pipe the output ( of some command ) as the
> >> *first* parameter of some other command ?
> >>
> >> Here is my problem: I have various rpm files in a directory tree. I want
> >> to copy all of these files to a remote server using scp. What I am
> >> thinking is
> >>
> >> [oliver at xen2vm4 redhat]$ find . -name "*.rpm"
> >>
> >> ./SRPMS/hello-1.0.0-2.src.rpm
> >> ./SRPMS/hello-1.0.0-1.src.rpm
> >> ./RPMS/i686/hello-1.0.0-2.i686.rpm
> >> ./RPMS/i686/hello-1.0.0-1.i686.rpm
> >>
> >>
> >> # find . -name "*.rpm" | xargs scp ??? root at remoteserver:
> >
> > perhaps
> >
> > find . -name \*.rpm | xargs scp {} root at remoteserver:
> >
> >
> Thanks, Roger, but I got the below error:
>
> [oliver at xen2vm4 ~]$ find . -name \*.rpm | xargs scp {} root at xen2vm1:
> ./redhat/RPMS/i686/hello-1.0.0-1.i686.rpm: Not a directory
I know you solved it, but I am curious what the error was. A chance to
learn something.
What do you get with:
find . -name \*.rpm | xargs echo scp {} root at xen2vm1:
Does the command look correct? Do you (GF) have any spaces in the names?
It didn't look like such a tree. xargs also takes an argument to tell
how big a buffer to use. But of course, your shell could cause problems
if the buffer is too big.
Having said all this, I, like David in this thread, use -exec. I seldom
use xargs. But I wanted to answer your question.
--
Roger Oberholtzer
OPQ Systems / Ramböll RST
Ramböll Sverige AB
Krukmakargatan 21
P.O. Box 17009
SE-104 62 Stockholm, Sweden
Office: Int +46 8-615 60 20
Mobile: Int +46 70-815 1696
More information about the Linux-users
mailing list