转载自:https://blog.csdn.net/liuxiao723846/article/details/91041629

在Linux中短横线(-)可以表示输出流,具体用法如下。

1、cat - 

如果指定cat的文件为-,表示从标准输入读取。这和直接使用cat命令没有什么区别(直接使用cat,也是从标准输入读取数据,然后输出)

[root]$ cataaaaaabbbbbbcccccc^C[root]$ cat -aaaaaabbbbbbbbdddddddddd^C

2、搭配管道 |

$ echo 123 | cat -123

3、利用ssh完成scp命令:

cat jdk.tar.gz | ssh [email protected]  '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命令。