在Linux中短横线(-)可以表示输出流,具体用法如下。
1、cat -
如果指定cat的文件为-,表示从标准输入读取。这和直接使用cat命令没有什么区别(直接使用cat,也是从标准输入读取数据,然后输出)
[root]$ cat
aaa
aaa
bbb
bbb
ccc
ccc
^C
[root]$ cat -
aaa
aaa
bbbb
bbbb
ddddd
ddddd
^C
2、搭配管道 |
$ echo 123 | cat -
123
3、利用ssh完成scp命令:
cat jdk.tar.gz | ssh root@192.168.56.101 'cat - > /tmp/jdk.tar.gz'
含义是,cat jdk.tar.gz 产生输出流, 在管道后面的 - ,则可以接受输出流,并重定向到 /tmp/jdk.tar.gz
4、打包重定向:
tar -cvf - /data/test | pigz -6 -p 10 -k > test.tar.gz
如果仅仅使用tar命令,则:
tar -cvf /data/test.tar /data/test
在这里,对/data/test 目录进行归档,输出流通过-来表示,然后重定向给pigz命令。