如何在 Linux 中使用 xargs 处理管道参数如何在 Linux 中使用 xargs 处理管道参数如何在 Linux 中使用 xargs 处理管道参数如何在 Linux 中使用 xargs 处理管道参数
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中使用 xargs 处理管道参数

了解如何使用 xargs 将标准输入转换为命令行参数。

如果您尝试将一个 Linux 命令的输出通过管道传输到另一个命令,则可能会遇到错误,该命令会因为其参数列表太长而失败。

幸运的是,Linux 系统上有一个命令可以正确格式化命令参数。它称为 xargs,以下是如何使用它。

为什么使用 xargs?

xargs 的作用是接收标准输出并对其进行格式化,以便另一个命令可以接收它。虽然许多 Linux 实用程序可以接受标准输入,但有些实用程序仅接受参数作为输入。

如果您尝试将标准输入重定向到命令,这些操作可能会失败。有些命令仍然只接受一定数量的参数,xargs 会为您处理这个问题。

如何在 Linux 上使用 xargs

你可以这样调用 xargs:

xargs [command]

xargs 跟踪命令接受的参数长度并格式化标准输入以输出参数列表以提供给命令。当它达到命令行的限制时,它将使用剩余的参数再次调用该命令。

在管道中使用 xargs

当 xargs 在管道中使用时,它的用处就显现出来了。一个人为的例子是通过管道将 cat 连接到 echo,这是一个只接受参数而不接受标准输入的命令。

cat | echo

这将导致 echo 在您按下 Ctrl + D 后立即打印您在一行中键入的任何内容。

xargs 最常与 find 命令一起使用,find 命令用于列出文件,xargs 用于以某种方式处理文件列表。

find 命令语法已经够复杂的了,为什么还要引入另一个命令呢?如果您使用 find 的“-exec”选项,则每次搜索目录中的文件时都会启动一个新进程。使用 xargs 效率更高。

您可能想要删除目录中早于特定日期(例如 90 天)的文件。为此,您可以使用此管道:

find . -mtime +90 -print | xargs rm

xargs 帮助 Linux 命令正确处理输入

使用 xargs,您现在可以确保命令将按照您期望的方式接受参数。与 find 结合使用,它可以让您快速处理机器上的文件。

作为 Unix 哲学的产物,在 shell 中重定向输入和输出的能力是 Linux 的持久优势之一。如果您想了解有关 Linux 输入/输出重定向如何工作的更多信息,请继续阅读。

©2015-2025 艾丽卡 support@alaica.com