12个适用于初学者的Linux Xargs命令实例

Xargs是一个很好的命令,它从标准输入读取数据流,然后生成并执行命令行; 意思是它可以输出命令并将其作为另一个命令的参数传递。 如果未指定命令,则xargs默认执行echo。 你们许多人还指示它从文件而不是stdin读取数据。

有几种方法可以使xargs在日常使用命令行时有用。 在本文中,我们将为初学者解释12个实用的Linux xargs命令示例。

1.第一个示例显示如何查找所有.png图像并使用tar utilit将其归档,如下所示。

这里,action命令-print0允许在标准输出上打印完整文件路径,然后是空字符, -0 xargs标志有效地处理文件名中的空格。

$ find Pictures/youcl/ -name *.png -type f -print0 | xargs -0 tar -cvzf images.tar.gz

使用tar查找图像和存档

2.您还可以使用xargs将多行输出转换为单行,如下所示。

$ ls -1 Pictures/youcl/
$ ls -1 Pictures/youcl/ | xargs

单行列出文件

3.要生成系统上所有Linux用户帐户的紧凑列表,请使用以下命令。

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

查找Linux用户列表

4.假设您有一个文件列表,并且您希望知道列表中每个文件中的行/字/字符数,可以使用和xargs实现此目的,如下所示。

$ ls *upload* | xargs wc

计算文件中的行数,单词和字符数

5. Xarags还允许您查找并递归删除目录,例如以下命令将递归删除目录Downloads中的DomTerm

$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

查找并递归删除目录

6.与上一个命令类似,您还可以在当前目录中找到名为net_stats的所有文件并将其删除。

$ find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"

7.接下来,使用xargs将文件一次复制到多个目录; 在这个例子中,我们试图复制该文件。

$ echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx 

将文件复制到多个目录

8.您还可以同时使用find命令xargsrename命令将特定目录中的所有文件或子目录重命名为小写,如下所示。

$ find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

9.这是xargs的另一个有用的用法示例,它显示了如何删除目录中的所有文件,除了一个或几个具有给定扩展名的文件。

$ find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}

10.如前所述,您可以指示xargs使用-a标志从文件而不是标准输入中读取项目,如图所示。

$ xargs -a rss_links.txt

11.您可以使用-t标志启用详细程度,该标志告诉xargs在执行标准错误输出之前打印命令行。

$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"

12.默认情况下, xargs使用空格来终止/分隔项目,您可以使用-d标志设置可以是单个字符的分隔符,C样式字符转义符(例如\n )或八进制或十六进制转义码。

此外,您还可以使用-p标志提示用户是否运行每个命令行并从终端读取一行(只需键入y表示“ 是”n表示“ 否” )。

$ echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx 

运行命令前提示用户

有关更多信息,请阅读xargs手册页。

$ man xargs 

这就是现在! Xargs是一个用于构建命令行的强大工具; 它可以帮助您将一个命令的输出作为另一个命令的参数进行处理。 在本文中,我们已经为初学者解释了12个实用的xargs命令示例。 通过下面的反馈表与我们分享您的想法或问题。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏