xargs命令可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割) 然后将参数传递给其后面的命令,作为后面命令的命令行参数
echo '--help' | xargs cat 等价于 cat --help 什么意思呢,就是xargs将其接受的字符串 --help 做成cat的一个命令参数来运行cat命令,同样 echo 'test.c test.cpp' | xargs cat 等价于 cat test.c test.cpp 此时会将test.c和test.cpp的内容都显示出来。
echo "w" |./a.out
如果你的程序读取标准输入,那么可以取到w这个字符串。如果你的程序是读取命令行参数的,那么就不会取到这个字符串,
这个时候就需要xargs这个东西了
echo "w" | xargs ./a.out 会把w当做命令行参数传去a.out程序。
再说直白一点,有些程序会从标准输入读入参数,或者从命令行读取参数,具体需要看命令了
xargs起到的作用就是把原本的标准输入重定向到了命令行参数传给了程序.
但是比如 kill 命令是不会从标准输入读取命令的,kill只会从命令行读取参数,echo '555' | kill 和直接输入kill一样,相当于没有给
kill输入参数,echo ‘333’ | xargs kill ,xargs命令通过管道接收字符串,然后将接受的到的字符串传递给后面的命令(比如这里的kill)
删除当前目录以及子目录的txt文件。
find . -name "*.txt" | xargs rm -rf