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.