管道和xargs的区别】的更多相关文章

1.概念 管道:将前一个命令的标准输出作为下一个命令的标准输入. xargs:将标准输入传递给下一个命令,作为其参数.(和管道连用)2.区别 2.区别 1:ls|cat是将ls的结果作为一个文件file,然后cat file 2:ls|xargs cat 是将ls的结果作为一个参数传递给cat,即cat test…
先看一个例子: find ./ -print | xargs grep a 输出: grep: ./: 是一个目录 ./less:abc ./afile:abcde ./afile:AaAbBcB ./afile:ab ./haha:abc ./cfile:abcqw find ./ -print | grep a 输出: ./afile ./haha 区别:管道命令是将前面命令的输出作为后面命令的标准输入 ->所以第二条命令输出了在 所有文件名中包含a的文件名 xargs命令将标准输入作为命令…
如上图,加了xargs的话相当于将上一个操作的结果作为命令执行前的操作,不加的话直接先把后面的命令运行一遍再操作…
本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www.cnblogs.com/chengmo/archive/2010/10/21/1856577.html以此为例: cat test.sh test1.sh 2>/dev/null | grep -n 'echo' 此时若test.sh 不存在,报错信息不会输出到屏幕中,而是转入 /dev/null中,如…
对xargs的使用总是比较模糊,大概的理解为:通道中,上一个命令的标准输出逐行作为下一个命令的参数 例如 find /var/temp* | xargs rm -r 功效:找出/var/中所有temp开头的文件和文件夹,再用rm逐行删除 (因为rm不支持管道,因此只能用xargs使find的结果逐行作为rm的参数) 假设: <span style="font-size:18px;">$ find /var/temp* $ /var/temp1 /var/temp2</…
一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面加不加xargs有什么区别 NewUserFF 写道: 懒蜗牛Gentoo 写道: 管道是实现"将前面的标准输出作为后面的标准输入" xargs是实现"将标准输出作为命令的参数" 你可以试试运行: 代码: echo "--help"|cat echo "--help"|xargs cat 看看结果的不同. 试过了,依然不是很确定的明白到底是什么意思,…
一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面加不加xargs有什么区别NewUserFF 写道:懒蜗牛Gentoo 写道:管道是实现“将前面的标准输出作为后面的标准输入”xargs是实现“将标准输入作为命令的参数” 你可以试试运行: 代码:echo "--help"|catecho "--help"|xargs cat 看看结果的不同. 试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把 如果你直接在命令行输入cat而…
一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面加不加xargs有什么区别 NewUserFF 写道: 懒蜗牛Gentoo 写道: 管道是实现“将前面的标准输出作为后面的标准输入” xargs是实现“将标准输入作为命令的参数” 你可以试试运行: 代码: echo "--help"|cat echo "--help"|xargs cat 看看结果的不同. 试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把 如果你直接在命令行…
一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面加不加xargs有什么区别 NewUserFF 写道:懒蜗牛Gentoo 写道:管道是实现“将前面的标准输出作为后面的标准输入”xargs是实现“将标准输入作为命令的参数” 你可以试试运行: 代码:echo "--help"|catecho "--help"|xargs cat 看看结果的不同. 试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把 如果你直接在命令行输入cat…
1. 简介 之所以能用到这个命令,关键是由于很多命令不支 持|管道来传递参数,而日常工作中有有这个必要, 所以就有了xargs命令,例如:find /sbin -perm +700 |ls -l 这个命令是 错误的find /sbin -perm +700 |xargs ls -l 这样才是 正确的xargs 可以读入 stdin 的资料,并且以空白字元或 断行字元作为分辨,将 stdin 的资料分隔成为 arguments . 因为是以空白字元作为分隔,所以, 如果有一些档名或者是其他意义的名…
重定向 什么是重定向? 将原本要输出在屏幕的内容,重新定向输出到指定的文件或设备中. 为什么要使用重定向? 1.备份的时候需要知道备份的结果. 2.屏幕上输出信息比较重要的时候需要保存下来. 3.定时任务我们需要知道结果. 4.执行命令时,明知会报错,我们会使用重定向,将结果放入 /dev/null 5.执行命令时,正确的结果和错误会同时输出,将正确的结果输入到常规日志,将错误的结果输出到错误日志. 重定向的分类 标准输入 标准输出 名称 文件描述符 作用 标准输入(stdin) 0 通常键盘(…
前言: find 命令一直都是系统管理员的常用命令之一, 其参数中 "-exec" 尤其实用.而 "xargs" 命令,针对查询也有属于自己的见解.本文着重讲解的是围绕 find 命令查询为主线,使用 -exec 参数(find 命令) 或使用 xargs 命令. 将当前 "标准输出" (数据流) 作为另一个命令的 "标准输入" .简单来说,将 find 查询出的命令做更多处理. 一.预备教程, "find"…
在研究hadoop的过程中,遇到一个小难题. 问题描述:我需要将文件夹A下的文件拷贝到文件夹B中,但是以hadoop开头的文件不要拷贝. 问题解决:ls  A|grep -v hadoop|xargs -t -I {} cp {} /B 解释:grep -v 是反选.xargs命令的功能是将管道传来的的信息作为参数赋予马上要执行的命令. 如果该命令是单参数指令,例如rm,那么很简单: ls A|xargs rm  即可. 如果该命令是多参数指令,例如cp.那可如何是好? 可以赋予-I(是大写的i…
实地在shell里执行下如下命令就知道区别了: $ find -type f -exec echo {} \; 很明显,exec是对每个找到的文件执行一次命令.从这里可以看出exec的缺点是每处理一个文件/目录,都要启动一次命令,效率不好; 格式麻烦,必须用 {} 做文件的代位符,必须用 "\;" 作为命令的结束符,书写不便.   $ find -type f | xargs echo xargs是把所有找到的文件名一股脑的转给命令.当文件很多时,这些文件名组合成的命令行参数很容易超长…
-exec:  对符合条件的文件执行所给的Linux 命令,执行exec后面的shell脚本.脚本中,{}表示命令的参数即为所找到的文件,以:表示comman命令的结束.\是转义符,因为分号在命令中还有它用途,所以就用一个\来限定表示这是一个分号而不是表示其它意思.   -ok: 和-exec的作用相同,格式也一样,只不过以一种更为安全的模式来执行该参数所给出的shell脚本.对于被执行脚本的对象,系统都会给出提示,让用户来确定是否执行.   xargs 要结合管道来完成 格式:find [op…
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 .txt [root@host temp]# find . -…
-exec     1.参数是一个一个传递的,传递一个参数执行一次,效率低     2.文件名有空格等特殊字符也能处理 -xargs      1.一次将参数传给命令,可以使用-n控制参数个数     2.处理特殊文件名需要采用如下方式:find . -name "*.txt" -print0 |xargs -0 rm {}  技巧: find -print0  与 xargs -0 的结合避免文件名有特殊字符如空格,引号等无法处理:    3.有些命令不支持多个参数,需要用-n 1…
管道符号,是unix功能强大的一个地方,符号是一条竖线:"|", 用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2, 例如: ls -l | more 该命令列出当前目录中的任何文档,并把输出送给more命令作为输入,more命令分页显示文件列表. find命令找到后把所有找到的删除: find -name *.jpg |xargs rm 管道和xargs的区别: 管道“|”:前面的…
第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Linux系统命令操作语法的格式 提示: 一般情况下命令中的[]表示可选,既命令的参数及文件是可选的. 参数选项===>一个命令的不同的功能(不同的条件). 1.2 Linux目录结构 第2章 认识常用的Linux基础命令 简单粗暴贯穿常用命令,对命令使用框架有个整体认识 2.1 创建一个目录/data…
查询所有的pid并杀死. jps -l | grep bdcsc2-native-demo | awk '{print $1}' | xargs kill -9 KISS:keep it short and simple! 1. 符号:` ` 名称:反引号,上分隔符 位置:反引号(`)这个字符一般在键盘的左上角,数字1的左边,不要将其同单引号(’)混淆 作用:反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部…
------------------------------------------------------------------------Linux常用操作------------------------------------------------------------------------------------------------- 1:Xshell无法远程连接服务器 (1):看路通不通.-------------------------------------------…
作者:ilexwg链接:https://www.zhihu.com/question/27452459/answer/170834758来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 管道和xargs不是一回事 -1- 管道只是将前面的标准输出作为后面的标准输入,而不能将前面的标准输出作为后面的命令参数: -2- xargs能够将前面的标准输出作为后面的命令参数 ===== 给你举个例子 ===== 文本文件china.txt的内容如下 [root@elephan…
问题 相信大家都知道在目录中搜索含有固定字符串文件的命令: find . -name '*.py' |xargs grep test 刚开始的时候,我不熟悉xargs命令,所以直接使用的命令是: find . -name '*.py' |grep test 结果并不是自己所期望的.此命令只是找出文件名中包含"test"的文件. 本文旨在揭示xargs究竟做了什么,使得结果不一样. 参数与标准输入 这两个词在Linux命令中是很常见的.但是参数和标准输入其实是有区别的.我们日常使用的很多…
管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandarderror 信息没有直接处理能力.然后,传递给下一个命令,作为标准的输入 standard input. 管道命令使用说明: 先看下下面图: command1正确输出,作为command2的输入 然后comand2的输出作为,comand3的输入 ,comand3输出就会直接显示在屏幕上面了. 通过管道之后:comand1,comand2的正确输出不显示…
平时使用find命令查找出文件的时候有时候后面有时候用-exec有时候用管道加xargs,这2个到底有什么不同?下面就这2个的不同做简单介绍. 零.实验环境 [root@osker /]# find /root/ -type f -name '*.txt' /root/.txt /root/.txt /root/.tx 一.xargs的使用 (1)将前一个命令的标准输出传递给下一个命令,作为它的参数,xargs的默认命令是echo,空格是默认定界符(2)将多行输入转换为单行 [root@oske…
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:erro…
文件描述符 可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值 查看系统文件描述符最大值 [root@localhost ~]# ulimit -n 1024 linux系统默认文件描述符 文件描述符 用途 POSIX名称 stdio流 说明 0 标准输入 STDIN_FILENO stdin 默认的设…
4.1 管道 管道是由pipe函数创建的,提供一个单向数据流. 头文件 #include <unistd.h> 函数原型 int pipe(int fd[2]); 返回值 成功则为0,出错则为-1 函数功能 该函数返回两个文件描述符:fd[0]和fd[1].fd[0]用来读操作,fd[1]用来写操作 说明 管道只能用于有亲缘关系进程间通讯.要实现非亲缘关系进程间通讯用有名管道FIFO 4.2 管道实现半双工通讯 实现的步骤: (1)创建管道(fd[0]和fd[1]) (2)fork (3)父进…
看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了.这次我们看下管道命令了.shell管道,可以说用法就简单多了. 管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力.然后,传递给下一个命令,作为标准的输入 standard input. 一.管道命令使用说明: command1正确输出,作为c…
前些文章陆续的说了一些关于这些主题,但是讨论的都不够深入,今天我们深入的了解一下获取帮助信息.管道以及格式化输出的内容. 一.获取帮助信息 在PS中获取帮助信息,最常用的有: -? .get-command和get-help.这三者获取的信息不是完全一致的,并且由于get-command和get-help是cmdlet:因此具有很多实用 的参数来帮助我们获取我们想要的信息. 1.1  -? 参数 如果我们知道某个cmdlet的拼写,但是不知道他的用户,那么最快速的方法就是用:-? 参数. 例如:…