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

介绍某些 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命令删除它们。
【如何使用Linux xargs命令(用法示例指南)】但是,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与经常使用的命令结合使用。

    推荐阅读