xargs 命令 -I {} 参数的含义及应用
创始人
2025-01-17 14:33:38
0

xargs 命令是一个非常好用的 Linux 命令,它可以将管道或标准输入转换成命令行参数,并用这些参数来执行指定的命令。默认情况下, xargs 命令会将输入按照空格、制表符、换行符等符号进行分隔,并将它们作为一组参数传递给指定的命令。如果没有输入,则 xargs 命令会读取用户的键盘输入,并将其用作参数。

例如,要将当前目录下所有 .txt 文件删除,可以使用下列命令:

ls *.txt | xargs rm 

此命令将列出当前目录中的所有 .txt 文件,并将它们作为参数传递给 rm 命令,删除这些文件。

但是,在某些情况下,xargs 命令的默认行为可能不符合我们的需求。在这种情况下,可以使用 -I 选项来自定义参数的分隔符。

-I 选项的语法是 -I <替代字符串>,它允许您在命令行中使用替代字符串来代替 xargs 接收到的参数。特别地,{} 符号通常用作替代字符串。当 xargs 命令遇到 {} 符号时,它会将其替换为输入中的值,然后执行指定的命令。

例如,要在当前目录下的所有 .txt 文件中搜索 “hello” 并显示匹配行的上下文,请使用以下命令:

ls *.txt | xargs -I{} grep -C2 "hello" {} 

此命令将把 ls 命令的输出作为 xargs 命令的输入,并将每个文件名替换为 {}。xargs 命令会将每个文件名作为参数传递给 grep 命令并执行它。

另一个示例是,要从用户列表中删除所有以 user 开头的用户帐户,请使用以下命令:

grep "^user" /etc/passwd | cut -d ":" -f 1 | xargs -I{} sudo userdel {} 

此命令会列出 /etc/passwd 文件中以 user 开头的用户帐户,然后根据 : 分隔符对其进行分割并只取第一列,最后使用 {} 符号将用户名作为参数传递给 xargs 命令,然后执行 sudo userdel 删除用户帐户。

因此, -I{} 选项可以让我们在 xargs 命令中自定义替代字符串,使得我们能够精确地控制被传递的参数和参数之间的分隔符,这有助于构建更加复杂和准确的命令。

相关内容

热门资讯

透视免费!aapkoer德州辅... 透视免费!aapkoer德州辅助挂下载,wepoker怎么拿到好牌,新版2025教程(有挂存在)1、...
黑科技辅助(德扑ai软件)外挂... 黑科技辅助(德扑ai软件)外挂透明挂辅助挂(透视)其实是真的有挂(有挂讲解)-哔哩哔哩1、构建自己的...
透视科技!aapoker透视脚... 透视科技!aapoker透视脚本,aapoker怎么开辅助器,2025新版教程(有挂教程)是一款可以...
黑科技脚本(wepoke是机器... 黑科技脚本(wepoke是机器发牌吗)外挂透明挂辅助黑科技(透视)好像真的有挂(有挂秘诀)-哔哩哔哩...
透视中牌率!aapoker辅助... 1、透视中牌率!aapoker辅助功能,德扑圈有透视吗,技巧教程(有挂神器);详细教程。2、德扑圈有...
黑科技了解(wepoke辅助枝... 黑科技了解(wepoke辅助枝巧)外挂透明挂辅助软件(透视)本来是有挂(今日头条)-哔哩哔哩小薇(透...
透视代打!智星德州菠萝安装,p... 透视代打!智星德州菠萝安装,pokemmo脚本辅助下载,攻略教程(证实有挂)1、玩家可以在pokem...
黑科技好牌(云扑克有没有辅助挂... 黑科技好牌(云扑克有没有辅助挂)外挂透明挂辅助app(透视)原来存在有挂(有挂秘笈)-哔哩哔哩1、任...
辅助黑科技!云扑克辅助(透视)... 辅助黑科技!云扑克辅助(透视)透牌教程(2025已更新)(哔哩哔哩)1、云扑克辅助系统规律教程、云扑...
一分钟秒懂!wepower辅助... 1、一分钟秒懂!wepower辅助软件(黑科技)外挂智能ai辅助器(有挂实锤)-哔哩哔哩;该软件可以...