The xargs command performs an interesting function. It accepts input from standard input and converts it into an argument list for a specified command.
xargs
的作用是:接收 input,转换成 argument list(一列参数),由命令分别执行。例如:
find ~ -type f -name 'foo*' -print | xargs ls -l
-rwxr-xr-x 1 me me 224 2007-10-29 18:44 /home/me/bin/foo
-rw-r--r-- 1 me me 0 2008-09-19 12:53 /home/me/foo.txt
问题:文件名中带有空格时怎么办?
在 Linux 系统中文件名属于带有空格。但是,遇到像xargs
这样的命令时,空格会被当作界定符(delimiter),空格前后部分被认作是分开的参数。为了能够准确查找到文件名中带有空格的文件,可以加入--null
参数:
find ~ -iname '*.jpg' -print0 | xargs --null ls -l
很简单的。