无奈之前xargs一直是配合find查找然后删除用的:
find ./ -type d |xargs rm -rf
之类。
但是突然今天,想把本目录下所有的.h文件拷贝出来,才想到如何代指传给xargs的参数继续传递呢?
find ./ -name ""*.h" |xargs cp dir
这样子其实展开后的命令是将dir拷贝为传递过来的参数。。。
遂man了一下没太注意,然后又百度之,才发现如下即可:
find ./ -name ""*.h" |xargs -I{} cp {} dir
然后也就看清楚了man中的一段:
-I replace-str
Replace occurrences of replace-str in the initial-arguments with names read from standard input. Also,
unquoted blanks do not terminate input items; instead the separator is the newline character. Implies
-x and -L 1.
--replace[=replace-str]
-i[replace-str]
This option is a synonym for -Ireplace-str if replace-str is specified, and for -I{} otherwise. This
option is deprecated; use -I instead.
其实只要-i就可以了,只是也许以后就不能用了呢。
这样以后就可以随意的使用xargs了