[Centos] help with xargs and mv
Dag Wieers
dag at wieers.com
Wed Feb 9 17:01:57 UTC 2005
On Wed, 9 Feb 2005, Dag Wieers wrote:
> On Wed, 9 Feb 2005, James B. Byrne wrote:
> > On 8 Feb 2005 at 23:14, Dag Wieers wrote:
> >
> > > Compare this:
> > >
> > > echo -e "file1\nfile2\nfile3" | xargs echo '{}' blah
> > >
> > > with:
> > >
> > > echo -e "file1\nfile2\nfile3" | xargs -i echo '{}' blah
> >
> > Thank you for the advice on the -i switch. I had tried this
> > earlier. With the -i '{}' argument added then this is the result:
> >
> > # ll -d ./mqueue/offline
> > drwxr-xr-x 2 root root 4096 Feb 8 14:03 ./mqueue/offline
> > #
> > # cat workmv | xargs -i '{}' mv ./mqueue/'{}' ./mqueue/offline
> > xargs: {}: No such file or directory
> > #
> > # cat workmv | xargs -i '{}' mv ./mqueue/'{}' ./mqueue/offline/
> > xargs: {}: No such file or directory
> > #
> > # cat workmv | xargs -i '{}' mv --Target-Directory=./mqueue/offline ./mqueue/'{}'
> > xargs: {}: No such file or directory
> > #
> > # cat workmv | xargs -i '{}' mv --Target-Directory=./mqueue/offline/ ./mqueue/'{}'
> > xargs: {}: No such file or directory
> > #
> >
> > P.S.
> > Also, thank you very much for the depository that you run. I use
> > several of your packages.
>
> Let me show you the manual entry again:
>
> --replace[=replace-str], -I replace-str, -i[replace-str]
> Replace occurences of replace-str in the initial
> arguments with names read from standard input.
> Also, unquoted blanks do not terminate arguments.
> If replace-str is omitted, it defaults to "{}" (like
> for 'find -exec'). Implies -x and -L 1.
>
> So you either do:
>
> echo -e "file1\nfile2\nfile3" | xargs -i echo '{}' blah
> or echo -e "file1\nfile2\nfile3" | xargs -i echo '{}' blah/'{}'
> or echo -e "file1\nfile2\nfile3" | xargs -i'**' echo '**' blah
> or echo -e "file1\nfile2\nfile3" | xargs -I '**' echo '**' blah
>
> This is correct:
>
> xargs -i'{}'
> or xargs -I '{}'
>
> This is not:
>
> xargs -i '{}'
>
> Compare this to the manual entry to verify. The distinction is necessary
> and important to allow for an '{}' default replace-str. Otherwise xargs
> wouldn't know whether the next argument is in fact the replace-str or the
> command to run !
And apparently, on RHEL3 the -I option does not exist:
[dag at horsea dag]$ echo -e "file1\nfile2\nfile3" | xargs -I '**' echo '**' blah
xargs: invalid option -- I
Usage: xargs [-0prtx] [-e[eof-str]] [-i[replace-str]] [-l[max-lines]]
[-n max-args] [-s max-chars] [-P max-procs] [--null] [--eof[=eof-str]]
[--replace[=replace-str]] [--max-lines[=max-lines]] [--interactive]
[--max-chars=max-chars] [--verbose] [--exit] [--max-procs=max-procs]
[--max-args=max-args] [--no-run-if-empty] [--version] [--help]
[command [initial-arguments]]
Report bugs to <bug-findutils at gnu.org>.
While on FC3, it should exist, but doesn't work:
[root at emyn ~]# echo -e "file1\nfile2\nfile3" | xargs -I '**' echo '**' blah
xargs: invalid option -- I
Usage: xargs [-0prtx] [-E eof-str] [-e[eof-str]] [-I replace-str]
[-i[replace-str]] [-L max-lines] [-l[max-lines]] [-n max-args]
[-s max-chars] [-P max-procs] [--null] [--eof[=eof-str]]
[--replace[=replace-str]] [--max-lines[=max-lines]] [--interactive]
[--max-chars=max-chars] [--verbose] [--exit] [--max-procs=max-procs]
[--max-args=max-args] [--no-run-if-empty] [--version] [--help]
[command [initial-arguments]]
So you can forget about -I altogether on RHEL3. And I'll report is as a
bug for FC3.
-- dag wieers, dag at wieers.com, http://dag.wieers.com/ --
[all I want is a warm bed and a kind word and unlimited power]
More information about the CentOS
mailing list