如何在 Linux 中使用 xargs 命令

对于一些更有经验的用户,我们一直在寻找新的方法来更智能地工作,而不是在终端上更努力地工作。 xargs 是一个有用的命令,它充当两个命令之间的桥梁,读取一个命令的输出并使用读取的项目执行另一个命令。 该命令最常用于用户搜索模式、删除和重命名文件等场景。 在这里,我们将向您展示如何使用 xargs 命令对你有利。

什么是 xargs?

在其基本形式中, xargs 从标准输入(或 STDIN)读取信息,并使用读取的项目执行命令一次或多次。 有许多简单的演示,但这里有一个说明我的意思。

具有 xargs 执行 ls 我的 Documents 文件夹上的命令,我将运行以下命令:

管道字符 | 将之前的任何内容作为标准输入进行管道传输 xargs.

你可以看到 xargs 读取我的 Documents 文件夹没有问题。 这只是一个 example 的能力 xargs 命令。

虽然 xargs command 可用于各种命令行操作,与 find 命令。 在本文中,我们将讨论一些有用的示例来了解如何 xargsfind 可以一起使用。

涉及多个文件的操作

假设您要将“ref.txt”的内容复制到目录中存在的所有文本文件中。 虽然该任务可能需要您执行多个命令,但 xargs 命令,连同 find 命令,让它变得简单。 我有几个测试目录。 一个有“test0.txt”,其中包含文本,另一个目录有 10 个其他测试文件,其中没有文本。 如果我想取的内容 test0.txt 并将其复制到其他目录中的其余文本文件中,我将运行以下命令:

Xargs 查找 Cp

为了理解上面显示的命令,我们把它分成两部分。

第一部分是 find ./test-dir1/ -name "*.txt" ,它搜索“test-dir1”目录中存在的所有 .txt 文件。 您可以在此处指定任何目录。

第二部分, xargs -n1 cp test.txt,将获取第一个命令的输出(生成的文件名)并将其交给 cp (复制)一一命令。 请注意, -n 选项在这里至关重要,因为它指示 xargs 每次执行使用一个参数。

当组合在一起时,完整的命令会将“test0.txt”的内容复制到目录中的所有.txt文件中。

Xargs Cp 证明

涉及大量参数的操作

使用的主要优点之一 xargs 是它处理大量参数的能力。 为了 example,在一次删除大量文件的同时, rm 命令有时会因“参数列表太长”错误而失败。 那是因为它不能简单地处理这么长的参数列表。 当您要删除的文件夹中有太多文件时,通常会出现这种情况。

假设您有 75 个 PDF,但在尝试删除它们时遇到错误。

Xargs Pdfs

这可以很容易地修复 xargs. 要删除所有这些文件,请使用以下命令:

Xargs Rm F

涉及模式搜索的操作

软件开发人员和系统管理员在使用命令行时会进行大量模式搜索。 为了 example,开发人员可能希望快速查看修改特定变量的项目文件,或者系统管理员可能希望查看使用特定系统配置参数的文件。 在这些场景中, xargs, 随着 findgrep让您轻松搞定。

为了 example要搜索所有包含“maketecheasier”字符串的“.txt”文件,请运行以下命令:

这是在我的系统上生成的命令的输出。

Xargs Grep Mte

剪切/复制操作

Xargs, 随着 find 命令,也可用于将一组文件从一个目录复制或移动到另一个目录。 为了 example要将所有超过 10 分钟的文本文件从当前目录移动到上一个目录,请使用以下命令:

-I 命令行选项由 xargs 命令定义一个替换字符串,该替换字符串被从输出中读取的名称替换 find 命令。 这里的替换字符串是 {},但它可以是任何东西。 为了 example,您可以使用“文件”作为替换字符串。

如何告诉 xargs 何时退出

假设您要列出当前目录中存在的所有 .txt 文件的详细信息。 如前所述,可以使用以下命令轻松完成:

但是有一个问题: xargs 命令将执行 ls 命令,即使 find 命令找不到任何 .txt 文件。 以下是一个 example.

Xargs 查找 Txt Pngs

所以你可以看到目录中没有.txt文件,但这并没有停止 xargs 从执行 ls 命令。 要更改此行为,请使用 -r 命令行选项:

结论

虽然我在这里专注于使用 xargsfind,它也可以与许多其他命令一起使用。 如果您需要执行多个复杂的命令, xargs 是一个非常有用的工具。

如果您喜欢我们关于如何使用 xargs Linux 中的命令,请务必查看我们的其他一些 Linux 内容,例如我们关于修复“设备上没有剩余空间”错误或加速 Ubuntu 的指南。

订阅我们的新闻!

我们的最新教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅