linux 管道 减号,linux shell环境减号”-”的用途

转自:http://www.wallcopper.com/linux/588.html

在shell环境下常常用到  “-” 符号,有些用途大家都耳熟能详,可有些乍一看可能还反应不过来。这篇文章写的算是比较全的了,拿过来分享下。

连字符:年轻人称之为dash,年长者称之为minus,英文名称hyphen(连字符),minus sign(减号),或虚线

减号”-”就是代表标准输出/标准输入, 视命令而定. “-”代替stdin和stdout的用法,stdin就是标准输入,stdout就是标准。

1,为应用程序指定参数。

如ps -aux,tar -zxf test.tar

2.一个减号和两个减号

一个减号后面跟的参数必须是单字符参数,可以多个参数写在同一个减号后面。

例如:tar -xvf ×××

两个减号后面跟的参数必须是多字符参数,一个“–”只能跟一个参数。

例如:tar –version

3 表示上一级工作目录。如cd -

cd -

4 普通用户切换到root

su -相当于su – root

5、通过ssh传送文本

cat id_rsa.pub |ssh -p322 root@172.10.1.105 ‘cat – >> ~/.ssh/authorized_keys’

6、表示标准输出流。如tar -cvf – /home | tar -xvf -

tar -cvf – /home 把/home压缩后,打印在stdout上

| 管道,即前一命令的输出为后一命令输入

tar -xvf - 从stdin读取内容,并在当前目录解压

复制的例子

tar cf – access.log |tar xf – -C /opt

7、纯粹是演示 ‘-’

grep -xvf a b 可以写成

cat a | grep -xvf – b

8、

脚本中可以这样在crontab里添加一个任务

{ crontab -l; echo “* * * * * /bin/date >> /tmp/log” ; } | crontab -

9、在文件头添加一行,也可以这样玩

cat – file <<

10、只取一列并与另一文件做diff

awk ‘{ print $1 }’ a | diff – b

11、例子, 在当前我要打包1个文件夹 /var/log/ 到当前目录下,并用zip压缩,

那么我们可以分步执行

#tar -cvf log.tar /var/log/

#zip -r log.tar.zip log.tar

#rm -rf log.tar

写成一条语句就是 tar -cvf log.tar /var/log/ && zip -r log.tar.zip log.tar && rm -rf log.tar 那么我们可以发现第一条语句的输出(log.tar) 就是第二条语句的输入 这种情况下我们可以用 “-” 来取代这个输出输入 直接执行如下语句就ok了 tar -cvf – /var/log | zip -r log.zip - 意思就是 第一条语句不再输入到1个具体文件,而输出到stdout中, 而作为第二条件的标准输入(stdin), 而stdin 和 stdout都可以用“-”来取代。 这样的话就不会有中间文件生成了~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值