介绍
某些 Linux 命令从标准输入 (stdin) 和命令行参数中获取输入。然而,其他人被设计为仅将输入作为参数。为了能够处理标准输入,这些Linux 命令需要使用该xargs
命令。
如何使用Linux xargs命令?在本教程中,你将学习如何使用 Linuxxargs
命令来操作标准输入并使用其他命令,包括Linux xargs命令用法示例。
先决条件
- 一个运行 Linux 的系统
- 访问命令行
什么是 xargs 命令?
Linux xargs命令使用教程:该xargs
命令构建并执行通过标准输入提供的命令。它接受输入并将其转换为另一个命令的命令参数。该特征是在文件管理,其中,特别有用的xargs
组合使用与rm
,cp
,mkdir
,和其它类似命令。
如何在示例中使用 xargs 命令
单独使用时,xargs
提示用户输入一个文本字符串,然后将其传递给echo
命令。
该示例显示了一个示例输入,后跟echo
命令的输出。
注意: echo 命令是一个内置的 Linux 功能,它将参数打印为标准输出。echo
通常用于将文本字符串或命令结果显示为消息。了解可以在 Linux 中使用echo 命令的所有不同方式。
将 xargs 与 find 结合使用
如何使用Linux xargs命令?find 命令通常位于xargs
管道之前。使用它来提供文件列表以供xargs
. 语法如下所示:
find [location] -name "[search-term]" -type f | xargs [command]
上面的示例演示了使用该find
命令查找所有具有.sh
扩展名的文件。然后文件列表通过管道传送到xargs
,它使用rm
命令删除它们。
但是,xargs
不会自动包含名称中包含空格的文件。要也包含这些文件,请使用-print0
选项 forfind
和-0
选项xargs
:
find [location] -name "[search-term]" -type f -print0 | xargs -0 [command]
rm
现在删除所有带有.sh
扩展名的文件。
将 xargs 与 grep 结合
Linux xargs命令用法示例:xargs
与grep 命令 一起使用可在该命令提供的文件列表中搜索字符串find
。
find . -name '[search-term]' | xargs grep '[string-to-find-in-files]'
上面的示例搜索所有带有.txt
扩展名的文件并将它们通过管道传输到xargs
,然后grep
对它们执行命令。
Xargs 多个命令
如何使用Linux xargs命令?要使用 运行多个命令xargs
,请使用该-I
选项。语法是:
[command-providing-input] | xargs -I % sh -c '[command-1] %; [command-2] %'
在示例中,file4.txt
首先显示的内容。然后mkdir
为文件中的每个单词创建一个文件夹。
从文件中读取项目
如前所述,xargs
读取标准输入。使用该-a
选项来读取文件的内容。
xargs -a [filename]
使用 tar 查找和存档图像
当与tar 命令一起使用时,xargs
创建一个tar.gz
存档并用该find
命令提供的文件填充它。
find [location] -name "[search-term]" -type f -print0 | xargs -0 tar -cvzf [tar-gz-archive-name]
打印命令
要查看xargs
标准输出中执行的命令,请使用该-t
选项。
[command-providing-input] | xargs -t [command]
在上面的示例中,请注意xargs
对.mkdir提供的整个字符串执行了mkdir 命令echo
。
批准 xargs 命令执行
Linux xargs命令用法示例:某些xargs
操作(如删除文件和文件夹)是不可逆的。要控制这些命令的执行,请使用该-p
选项。
[command-providing-input] | xargs -p [command]
当你使用该-p
选项执行命令时,xargs
会在执行前显示确认行。键入y
以继续或n
取消操作。
限制每行输出
Linux xargs命令使用教程:有时需要同时控制参数的数量xargs
。使用-n
后跟你限制xargs
为的参数数量的选项执行此操作:
[command-providing-input] | xargs –n [number] [command]
在下面的示例中,xargs
从echo
命令中获取字符串并将其拆分为三个。然后它echo
为每个部分执行另一个:
指定分隔符
默认xargs
分隔符是空格。要更改默认分隔符,请使用-d
后跟单个字符或转义字符的命令,例如n
(换行)。
[command-providing-input] | xargs -d [new-delimiter] | xargs [command]
在下面的示例中,该xargs
命令指示系统*
用作分隔符并应用于mkdir
每个获得的参数。
列出系统上的所有 Linux 用户帐户
如何使用Linux xargs命令?使用xargs
组织命令,如输出cut
。考虑以下示例:
cut -d: -f1 < /etc/passwd | sort | xargs
该cut
命令访问/etc/passwd
文件并使用:
定界符剪切文件中每一行的开头。输出然后通过管道传输到sort
,它对接收的字符串进行排序,最后xargs
显示它们:
注意:有关列出用户的其他方法,请阅读如何在 Linux 中列出用户。
删除字符串中的空格
由于xargs
在查找参数时会忽略空格,因此该命令可用于从字符串中删除不必要的空格。
echo "[string-with-unnecessary-spaces]" | xargs
列出每个文件中的行数/字数/字符数
Linux xargs命令用法示例:xargs
与wc
命令一起使用可显示包含行数、字数和字符数的文件列表。
ls | xargs wc
下面的示例指示ls 命令xargs
仅通过管道传输到包含单词“example”的文件。xargs
然后应用于wc
该列表:
将文件复制到多个目录
如何使用Linux xargs命令?使用xargs
命令将文件复制到多个目录。语法很简单:
echo [directory-1] [directory-2] | xargs -n 1 cp -v [filename]
该echo
命令提供目录名称,并xargs
使用cp 命令将给定文件复制到每个目录中。
Linux xargs命令使用教程总结
完成本教程后,你应该知道如何使用该xargs
命令。这篇文章提供了一个命令选项列表,并展示了如何xargs
与经常使用的命令结合使用。