Xargs是一个很棒的命令,它从标准输入读取数据流,然后生成并执行命令行;这意味着它可以获取命令的输出并将其作为另一个命令的参数传递。如果没有指定命令,xargs默认执行echo。许多人还指示它从文件而不是标准输入中读取数据。
xargs在命令行的日常使用中有多种用途。在本文中,我们将为初学者讲解 12 个实用的 Linux xargs 命令示例。
1.第一个示例展示了如何使用tar 实用程序查找所有.png
图像并对其进行归档,如下所示。
在这里,操作命令-print0
允许在标准输出上打印完整文件路径,后跟空字符和-0
xargs 标志有效地处理文件名中的空格。
$ 查找图片/示例/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz
![](https://www.alaica.com/wp-content/uploads/linux-349.png)
2.您还可以使用xargs将 ls 命令的多行输出转换为单行,如下所示。
$ ls -1 图片/示例/ $ ls -1 图片/示例/ | 参数
![](https://www.alaica.com/wp-content/uploads/linux-350.png)
3.要生成系统上所有 Linux 用户帐户的紧凑列表,请使用以下命令。
$ cut -d:-f1 < /etc/passwd | 排序| 参数
![](https://www.alaica.com/wp-content/uploads/linux-351.png)
4.假设您有一个文件列表,并且您希望知道列表中每个文件的行数/单词数/字符数,您可以使用 ls 命令和xargs来实现此目的,如下所示。
$ ls *上传* | 厕所
![](https://www.alaica.com/wp-content/uploads/linux-352.png)
5. Xarags 还允许您查找并递归删除目录,例如以下命令将递归删除目录Downloads中的DomTerm。
$ find 下载 -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"
![](https://www.alaica.com/wp-content/uploads/linux-353.png)
6、与上一条命令类似,也可以找到当前目录下所有名为net_stats的文件并将其删除。
$ 查找 . -名称“net_stats”-type f -print0 | xargs -0 /bin/rm -v -rf "{}"
7、接下来,使用xargs将一个文件一次性复制到多个目录;在此示例中,我们尝试复制该文件。
$ echo ./模板/ ./文档/ | xargs -n 1 cp -v ./下载/SIC_Template.xlsx
![](https://www.alaica.com/wp-content/uploads/linux-354.png)
8.您还可以同时使用find 命令、xargs和rename命令将特定目录中的所有文件或子目录重命名为小写,如下所示。
$ 查找文档网-深度 | xargs -n 1 重命名 -v 's/(.*)/([^/]*)/$1/L$2/' {} ;
9.这是xargs的另一个有用的用法示例,它展示了如何删除目录中的所有文件,除了一个或几个具有给定扩展名的文件。
$ 查找 . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}
10.如前所述,您可以使用所示标志指示xargs从文件而不是标准输入中读取项目。-a
$ xargs -a rss_links.txt
11.您可以使用该标志启用详细程度-t
,该标志告诉xargs在执行之前在标准错误输出上打印命令行。
$ find 下载 -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"
12.默认情况下,xargs使用空格终止/分隔项目,您可以使用该-d
标志来设置分隔符,分隔符可以是单个字符、C 风格的字符转义符(例如 )n
,或者八进制或十六进制转义码。
此外,您还可以使用所示的标志提示用户是否运行每个命令行并从终端读取一行(-p
只需键入y
yes或no n
)。
$ echo ./模板/ ./文档/ | xargs -p -n 1 cp -v ./下载/SIC_Template.xlsx
![](https://www.alaica.com/wp-content/uploads/linux-355.png)
有关更多信息,请阅读xargs手册页。
$ 人 xargs
现在就这样了!Xargs是一个用于构建命令行的强大实用程序;它可以帮助您将一个命令的输出作为另一个命令的参数进行处理。在本文中,我们为初学者解释了 12 个实用的 xargs 命令示例。通过下面的反馈表与我们分享您的想法或问题。