linux复习笔记之bash shell (5) 关于减号-的作用
2015-01-16 09:03
204 查看
转载请出自出处:http://eksliang.iteye.com/blog/2105677
管道命令在bash的连续处理程序中是相当重要的,尤其在使用到前一个命令的studout(标准输出)作为这次的stdin(标准输入)时,就显得太重要了,某些命令需要用到文件名,例如上篇文档的的切割命令(split)、还有tar(打包)命令等等!这时这个文件就承当studout或者stdin,这个时候这个studout或者stdin就可以用减号(-)来替代
实例一:使用ls -al /将输出的信息中,没3行记录成一个文件
实例二:tar -cvf tarName.tar ./bash 本来是这样的,看我怎么用“-”来替他文件的标准输出
实例三:综合实例
上面这个例子是说我将./bash这个文件打包,但是打包的文件不是记录到文件,而是传送到标准输出(stdout);经过管道后,将tar -cvf - ./bash传给后面的tar -xvf -。后面这个“-”则是取用前面一个命令的stdout作为stdin,因此这里就不需要使用文件了,这是很常见的例子,因为我们写脚本的时候,就不要去写个临时文件了。
管道命令在bash的连续处理程序中是相当重要的,尤其在使用到前一个命令的studout(标准输出)作为这次的stdin(标准输入)时,就显得太重要了,某些命令需要用到文件名,例如上篇文档的的切割命令(split)、还有tar(打包)命令等等!这时这个文件就承当studout或者stdin,这个时候这个studout或者stdin就可以用减号(-)来替代
实例一:使用ls -al /将输出的信息中,没3行记录成一个文件
[root@bogon bash]# ls -al / | split -l 3 - s [root@bogon bash]# wc -l s* 3 saa 3 sab 3 sac 3 sad 3 sae 3 saf 3 sag 2 sah 23 total #一般来说,如果需要stdout(标准输出)/stdin(标准输入),但偏偏又没有文件,有的只是“-”时,那么那个“-”就会被当做stdout或者stout
实例二:tar -cvf tarName.tar ./bash 本来是这样的,看我怎么用“-”来替他文件的标准输出
[root@bogon ~]# tar -cvf ./bash tar: Cowardly refusing to create an empty archive Try `tar --help' or `tar --usage' for more information. #这里报错了,没有办法,因为语法错误 [root@bogon ~]# tar -cvf - ./bash ./bash/ ./bash/sag ./bash/saf ./bash/sae ./bash/aa.txt ./bash/sab ./bash/saa ./bash/sad ./bash/cc.txt ./bash/bb.txt ./bash/test.txt ..... #看到了没有这个时候用”-“替代了本来输出到文件,而标准输出到了屏幕
实例三:综合实例
[root@bogon ~]# tar -cvf - ./bash | tar -xvf - ./bash/ ./bash/sag ./bash/saf ......!(省略) ./bash/saf ./bash/sah ./bash/sac tar: ./bash: file changed as we read it ./bash/sae .......!省略) ./bash/sah ./bash/sac
上面这个例子是说我将./bash这个文件打包,但是打包的文件不是记录到文件,而是传送到标准输出(stdout);经过管道后,将tar -cvf - ./bash传给后面的tar -xvf -。后面这个“-”则是取用前面一个命令的stdout作为stdin,因此这里就不需要使用文件了,这是很常见的例子,因为我们写脚本的时候,就不要去写个临时文件了。
相关文章推荐
- linux复习笔记之bash shell (4)管道命令
- linux复习笔记 之bash shell (3) 通配符
- Linux Bash Shell 笔记
- Linux-shell基础复习笔记
- Linux学习笔记:bash特性之多命令执行,shell脚本
- linux复习笔记之bash shell (2) bash基础
- Linux Bash Shell学习笔记
- linux笔记:shell基础和bash的基本功能
- 关于linux bash shell中sort命令指定分隔符的用法
- linux笔记:shell基础-bash基本功能
- linux笔记:shell基础-bash变量
- Linux学习笔记 认识bash这个shell
- linux bash shell 笔记
- Linux复习笔记(一) -- Bash的基本操作
- Linux 学习笔记 -- 第三部分 学习 shell 与 shell script -- 第11章 认识与学习 bash
- Linux Shell Bash 变量赋值中"$()"的作用
- 关于while read line循环的linux bash shell bug
- 【linux学习笔记】bash学习之login shell与non-login shell(source命令)
- Linux Bash Shell学习(四):编辑命令
- linux超级基础系列——什么是shell? bash和shell有什么关系?(转)