IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 管道符|与xargs的区别 -> 正文阅读

[系统运维]管道符|与xargs的区别

一、管道符|与xargs的实验

1、管道符

	管道的作用是将前一个的输出作为后一个命令的输入,管道使用字符竖杠 | 表示,语法格式如下:
	命令1 | 命令 2 | 命令3
echo '--help' | cat

输出结果:
在这里插入图片描述

2、管道符+xargs

管道|的缺陷:
	注意:并不是所有的命令都支持管道运算,这是管道|的缺陷,但我们又要需要这样的传递功能时,从而我们就需要另外的xargs命令实现传递参数。
管道实现的是将前面的输出stdout作为后面的输入stdin,但是有些命令不接受管道的传递方式。例如:ls,这是为什么	呢?因为有些命令希望管道传递过来的是参数,但是直接使用管道有时无法传递到命令的参数位。这时候就需要xargs,	xargs实现的是将管道传递过来的stdin进行处理然后传递到命令的参数位置上。

xargs完成了两个行为:
1. 处理管道传输过来的stdin;
2. 将处理后的数据传递到正确的位置;
echo '--help' | xargs cat

输出结果:
在这里插入图片描述

[root@iflytek opt]# find /usr/local/nginx/ -name *.conf | ls -l		#很明显ls输出的内容根本不是find查找的内容,说明管道对于ls命令无效
total 0
drwxr-xr-x  3 root root 22 Jul 16 18:57 ORCLfmap
drwxr-xr-x. 2 root root  6 Mar 26  2015 rh
[root@iflytek opt]# 
[root@iflytek opt]# find /usr/local/nginx/ -name *.conf |xargs ls -l					#加一个xargs 命令,输出结果正确
-rwxrwxrwx 1 root  root  1198 Oct  3 16:42 /usr/local/nginx/conf/conf.d/proxy.conf
-rwxrwxrwx 1 root  root   165 Oct  3 17:30 /usr/local/nginx/conf/conf.d/web_server.conf
-rwxrwxrwx 1 nginx nginx  166 Jul 30 16:11 /usr/local/nginx/conf/dep.conf
-rwxrwxrwx 1 nginx nginx  979 Oct 27  2017 /usr/local/nginx/conf/fastcgi.conf
-rwxrwxrwx 1 nginx nginx 1571 Oct  5 17:54 /usr/local/nginx/conf/nginx.conf
-rwxrwxrwx 1 nginx nginx  190 Aug 17 03:37 /usr/local/nginx/conf/zabbix.conf
[root@iflytek opt]# 


二、结论

管道符:将上一条命令输出指定为下一条命令的输入
管道符+xargs:将上一条命令输出指定为下一条命令的参数

三、参数与输入

以cat命令案例来说明: cat filename
首先:新建文件 test --> 写入内容 hello world

输入

echo 'hello world' > test
echo 'test' | cat

输出:test

参数

echo 'test'|xargs cat

输出:hello world

暂时假定:一个shell命令,如果不带字符串都是参数(如果后期发现有误,再修正)

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 12:16:02  更:2022-04-26 12:20:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:58:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码