Linux命令:xargs的实例教程

166 阅读2分钟

`xargs`命令的快速指南,用于传递一个命令的输出并将其作为另一个命令的参数

xargs 命令在UNIX shell中用于将标准输入的输入转化为一个命令的参数。

换句话说,通过使用xargs ,一条命令的输出被用作另一条命令的输入。

下面是你将使用的语法。

command1 | xargs command2

我们使用管道(| )将输出传给xargs 。这将负责运行command2 ,使用command1 的输出作为其参数(s)。

让我们做一个简单的例子。你想从一个目录中删除一些特定的文件。这些文件被列在一个文本文件中。

我们有3个文件。file1,file2,file3

todelete.txt ,我们有一个我们想要删除的文件的列表,在这个例子中,file1file3

我们将通过xargs ,把cat todelete.txt 的输出引向rm 命令。

以这种方式。

cat todelete.txt | xargs rm

这就是结果,我们列出的文件现在被删除了。

它的工作方式是:xargs 将运行rm 2次,每行由cat 返回一次。

这是对xargs 最简单的用法。我们可以使用几个选项。

在我看来,特别是在开始学习xargs 时,最有用的一个是-p 。使用这个选项将使xargs 打印一个确认提示,并说明它要采取的行动。

-n 选项让你告诉xargs 一次执行一个迭代,所以你可以用-p 单独确认它们。这里我们用-n1 告诉xargs 一次执行一个迭代。

-I 选项是另一个广泛使用的选项。它允许你把输出放到一个占位符中,然后你可以做各种事情。

其中之一是运行多个命令。

command1 | xargs -I % /bin/bash -c 'command2 %; command3 %'

你可以将我上面使用的% 符号与其他东西交换,它是一个变量

xargs 命令可以在Linux、macOS、WSL以及任何你有UNIX环境的地方使用