如何使用Linux xargs命令?用法示例指南

2021年11月18日22:35:50 发表评论 1,058 次浏览

介绍

某些 Linux 命令从标准输入 (stdin) 和命令行参数中获取输入。然而,其他人被设计为仅将输入作为参数。为了能够处理标准输入,这些Linux 命令需要使用该xargs命令。

如何使用Linux xargs命令在本教程中,你将学习如何使用 Linuxxargs命令来操作标准输入并使用其他命令,包括Linux xargs命令用法示例

先决条件

  • 一个运行 Linux 的系统
  • 访问命令行

什么是 xargs 命令?

Linux xargs命令使用教程:该xargs命令构建并执行通过标准输入提供的命令。它接受输入并将其转换为另一个命令的命令参数。该特征是在文件管理,其中,特别有用的xargs组合使用与rmcpmkdir,和其它类似命令。

如何在示例中使用 xargs 命令

单独使用时,xargs提示用户输入一个文本字符串,然后将其传递给echo命令。

如何使用Linux xargs命令?用法示例指南

该示例显示了一个示例输入,后跟echo命令的输出。

注意: echo 命令是一个内置的 Linux 功能,它将参数打印为标准输出。echo通常用于将文本字符串或命令结果显示为消息。了解可以在 Linux 中使用echo 命令的所有不同方式。

将 xargs 与 find 结合使用

如何使用Linux xargs命令?find 命令通常位于xargs管道之前。使用它来提供文件列表以供xargs. 语法如下所示:

find [location] -name "[search-term]" -type f | xargs [command]
如何使用Linux xargs命令?用法示例指南

上面的示例演示了使用该find命令查找所有具有.sh扩展名的文件。然后文件列表通过管道传送到xargs,它使用rm命令删除它们。

但是,xargs不会自动包含名称中包含空格的文件。要也包含这些文件,请使用-print0选项 forfind-0选项xargs

find [location] -name "[search-term]" -type f -print0 | xargs -0 [command]
如何使用Linux xargs命令?用法示例指南

rm现在删除所有带有.sh扩展名的文件。

将 xargs 与 grep 结合

Linux xargs命令用法示例:xargs与grep 命令 一起使用可在该命令提供的文件列表中搜索字符串find

find . -name '[search-term]' | xargs grep '[string-to-find-in-files]'
如何使用Linux xargs命令?用法示例指南

上面的示例搜索所有带有.txt扩展名的文件并将它们通过管道传输到xargs,然后grep对它们执行命令。

Xargs 多个命令

如何使用Linux xargs命令?要使用 运行多个命令xargs,请使用该-I选项。语法是:

[command-providing-input] | xargs -I % sh -c '[command-1] %; [command-2] %'
如何使用Linux xargs命令?用法示例指南

在示例中,file4.txt首先显示的内容。然后mkdir为文件中的每个单词创建一个文件夹。

从文件中读取项目

如前所述,xargs读取标准输入。使用该-a选项来读取文件的内容。

xargs -a [filename]
如何使用Linux xargs命令?用法示例指南

使用 tar 查找和存档图像

当与tar 命令一起使用时,xargs创建一个tar.gz存档并用该find命令提供的文件填充它。

find [location] -name "[search-term]" -type f -print0 | xargs -0 tar -cvzf [tar-gz-archive-name]
如何使用Linux xargs命令?用法示例指南

打印命令

要查看xargs标准输出中执行的命令,请使用该-t选项。

[command-providing-input] | xargs -t [command]
如何使用Linux xargs命令?用法示例指南

在上面的示例中,请注意xargs对.mkdir提供的整个字符串执行了mkdir 命令echo

批准 xargs 命令执行

Linux xargs命令用法示例:某些xargs操作(如删除文件和文件夹)是不可逆的。要控制这些命令的执行,请使用该-p选项。

[command-providing-input] | xargs -p [command]
如何使用Linux xargs命令?用法示例指南

当你使用该-p选项执行命令时,xargs会在执行前显示确认行。键入y以继续或n取消操作。

限制每行输出

Linux xargs命令使用教程:有时需要同时控制参数的数量xargs。使用-n后跟你限制xargs 为的参数数量的选项执行此操作:

[command-providing-input] | xargs –n [number] [command]

在下面的示例中,xargsecho命令中获取字符串并将其拆分为三个。然后它echo为每个部分执行另一个:

如何使用Linux xargs命令?用法示例指南

指定分隔符

默认xargs分隔符是空格。要更改默认分隔符,请使用-d后跟单个字符或转义字符的命令,例如n(换行)。

[command-providing-input] | xargs -d [new-delimiter] | xargs [command]

在下面的示例中,该xargs 命令指示系统*用作分隔符并应用于mkdir每个获得的参数。

如何使用Linux xargs命令?用法示例指南

列出系统上的所有 Linux 用户帐户

如何使用Linux xargs命令?使用xargs组织命令,如输出cut。考虑以下示例:

cut -d: -f1 < /etc/passwd | sort | xargs

cut命令访问/etc/passwd文件并使用:定界符剪切文件中每一行的开头。输出然后通过管道传输到sort,它对接收的字符串进行排序,最后xargs显示它们:

如何使用Linux xargs命令?用法示例指南

注意:有关列出用户的其他方法,请阅读如何在 Linux 中列出用户。

删除字符串中的空格

由于xargs在查找参数时会忽略空格,因此该命令可用于从字符串中删除不必要的空格。

echo "[string-with-unnecessary-spaces]" | xargs
如何使用Linux xargs命令?用法示例指南

列出每个文件中的行数/字数/字符数

Linux xargs命令用法示例:xargswc命令一起使用可显示包含行数、字数和字符数的文件列表。

ls | xargs wc

下面的示例指示ls 命令xargs仅通过管道传输到包含单词“example”的文件。xargs然后应用于wc该列表:

如何使用Linux xargs命令?用法示例指南

将文件复制到多个目录

如何使用Linux xargs命令?使用xargs命令将文件复制到多个目录。语法很简单:

echo [directory-1] [directory-2] | xargs -n 1 cp -v [filename]
如何使用Linux xargs命令?用法示例指南

echo命令提供目录名称,并xargs使用cp 命令将给定文件复制到每个目录中。

Linux xargs命令使用教程总结

完成本教程后,你应该知道如何使用该xargs命令。这篇文章提供了一个命令选项列表,并展示了如何xargs与经常使用的命令结合使用。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: