find参数exec、管道符|、xargs的区别
1.这三个命令都可以将前面的输出做为后面的输入。
2.他们对于前面的输出,处理方式不同。
find . -name "*.sh" -exec cat {} \;
find . -name "*.sh" |cat
find . -name "*.sh" |xargs cat
示例一:
[root@host temp]# cat ex.sh a.txt b.txt c.txt d.txt 5.txt [root@host temp]# find . -name "ex.sh" -exec cat {} \; a.txt b.txt c.txt d.txt 5.txt [root@host temp]# find . -name "ex.sh"|cat ./ex.sh [root@host temp]# find . -name "ex.sh"|xargs cat a.txt b.txt c.txt d.txt 5.txt [root@host temp]#
示例二:
[root@host django]# find . -name "*.py" ./siteone/blog/models.py ./siteone/blog/__init__.py ./siteone/blog/migrations/__init__.py ./siteone/blog/tests.py ./siteone/blog/views.py ./siteone/blog/admin.py ./siteone/siteone/urls.py ./siteone/siteone/__init__.py ./siteone/siteone/settings.py ./siteone/siteone/wsgi.py ./siteone/manage.py [root@host django]# find . -name "*.py" -exec echo {} \; ./siteone/blog/models.py ./siteone/blog/__init__.py ./siteone/blog/migrations/__init__.py ./siteone/blog/tests.py ./siteone/blog/views.py ./siteone/blog/admin.py ./siteone/siteone/urls.py ./siteone/siteone/__init__.py ./siteone/siteone/settings.py ./siteone/siteone/wsgi.py ./siteone/manage.py [root@host django]# find . -name "*.py" |echo [root@host django]# find . -name "*.py" |xargs echo ./siteone/blog/models.py ./siteone/blog/__init__.py ./siteone/blog/migrations/__init__.py ./siteone/blog/tests.py ./siteone/blog/views.py ./siteone/blog/admin.py ./siteone/siteone/urls.py ./siteone/siteone/__init__.py ./siteone/siteone/settings.py ./siteone/siteone/wsgi.py ./siteone/manage.py [root@host django]#
总结:
exec会对每一个find找到的文件,执行一次命令。
xargs是把所有找到的文件名根据空格或者回车分割成一个一个的参数传递给命令
不用xargs的管道符是将前面的标准输出,做为后面命令的标准输入
带有xargs的管道符是将前面的标准输出,做为后面命令的参数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?