这里提供 xargs 这个 Linux 指令的使用教学,并搜集一些常用的范例程式以供参考。

在 UNIX/Linux 系统中,xargs 这个指令跟其他的指令结合之后,将会变得非常有用,这里我们整理了一些常见的 xargs 使用范例与教学,透过这些简单的范例可以很快的了解 xargs 的各种使用方式。

虽然这里的范例都很简单,但是当你了解 xargs 的用法之后,你会发现 xargs 其实可以拿来处理各式各样的问题,而且非常好用,尤其是对于服务器的系统管理者而言,在管理大量的档案与目录结构时,有这样的工具会方便很多。

如果要指定 xargs 在读取标准输入时所使用的分隔字元,可以使用 -d 这个参数。例如:

这里当我们使用 -d 这个参数指定分隔字元时,xargs 就会将换行字元保留下来,所以输出会分为两行。

预设的状况下,xargs 会把从标准输入的资料所分割出来的字串,一次全部都放进指定指令参数中,例如:

如果你对于 xargs 的使用方式不是很熟悉,或是需要以 root 权限执行一些不容出错的指令,可以加上 -p 参数,让指令在实际执行指令之前可以先进行确认的动作。例如:

则在每一行指令执行前,都会先确认,如果要执行就输入 y,若不执行则输入 n,假设每一个指令我们都输入 y 让它执行,则整个输出就会变成这样:

这里因为 xargs 的确认讯息与 echo 指令的输出混在一起,所以看起来有点奇怪。

如果所有的指令进行确认时,我们都输入 n,这样就不会执行任何的 echo 指令,输出就会像这样:

大家应该有注意到上面的例子当我们使用 -p 参数时,如果所有的指令都输入 n 跳过不执行时,最后还会出现一个没有任何参数的 echo 指令,如果想要避免以这种空字串作为参数来执行指令,可以加上 -r 参数:

如果标准输入为空字串时,xargs 预设还是会执行一次 echo 指令:

使用 -t 参数可以让 xargs 在执行指令之前先显示要执行的指令,这样可以让使用者知道 xargs 执行了哪些指令。

xargs 本身的功能并不多,但是他跟其他的 Linux 指令一起搭配使用时,功能就会显得很强大。

与 find 指令合在一起使用是 xargs 的一项非常重要的功能,它可以让你找寻特定的档案,并且进行特定的处理动作。

这里因为是示范用的例子,所以并没有建立太多的档案与目录结构,在实际的应用上,当整个目录结构很复杂、档案又很多的时候,使用这样的方式就会非常有效率。

因为档名包含空白,所以这会会造成 rm 指令无法正确删除该档案。

如此一来,即可正确处理包含空白字元的档案名称。

使用 --show-limits 参数可以查看系统对于命令列长度的限制,这些限制会跟 xargs 的运作情况有关,如果要处理很大量的资料时,这些限制要注意一下。

xargs 与 grep 两个指令的合并也是一个很常见的使用方式,它可以让你找寻特定档案之后,进而搜寻档案的内容。

这个对于程序员在看一堆专案源代码的时候特别有用。