利用管道把上一个命令的出参作为下一个命令的入参使用

使用

简单的使用

直接输出了 ls 的打印结果
因为没有换行所以看起来没什么区别

1
2
$ ls | xargs echo
Applications Library System Users Volumes bin cores dev etc home opt private sbin tmp usr var

自定义使用

-I 参数可以指定占位符,xargs 运行时将会替换命令中的占位符为真实值

1
2
3
4
5
$ ls | xargs -I {} echo {}
Applications
Library
System
....

如果希望使用其他占位符(如:()),则需要使用 \ 进行转义,因为() 在shell中有特殊的含义

1
2
3
4
5
$ ls |  xargs -I \(\) echo current: \(\(\)\)
current: (Applications)
current: (Library)
current: (System)
...