shell - About the usage of linux command "xargs" -


i have file

love.txt   loveyou.txt  

in directory useful; want copy file directory /tmp.

i use command:

find ./useful/ -name "love*" | xargs cp /tmp/ 

but doesn't work, says:

cp: target `./useful/loveyou.txt' not directory 

when use command:

 find ./useful/ -name "love*" | xargs -i cp {} /tmp/ 

it works fine,

i want know why second works, , more usage of -i cp {}.

xargs puts words coming standard input end of argument list of given command. first form therefore creates

cp /tmp/ ./useful/love.txt ./useful/loveyou.txt 

which not work, because there more 2 arguments , last 1 not directory.

the -i option tells xargs process 1 file @ time, though, replacing {} name, equivalent to

cp ./useful/love.txt    /tmp/ cp ./useful/loveyou.txt /tmp/ 

which works well.


Comments

Popular posts from this blog

plot - Remove Objects from Legend When You Have Also Used Fit, Matlab -

java - Why does my date parsing return a weird date? -

Need help in packaging app using TideSDK on Windows -